Perdu dans un foreach

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Perdu dans un foreach

Re: Perdu dans un foreach

par sirakawa » 15 juin 2012, 11:51

$t = 1;
                while ( $t < 10 )
                {
                    $t++;
                }
                    foreach($_POST['coup'] as $key => $t) {
                    $req = $bdd->prepare('INSERT INTO trou(coup) 
					VALUES(:coup, NOW())');
					$req->execute(array(

                    'coup' => $coup,
					
                    ));
Un ami m'a dis qu'il fallait que je place un while, mais ca me parait étrange. J'ai pas tout compris au foreach aussi .. :/
I suppose qu'il voulait dire de mettre un while à la place du foreach, car on peut montrer facilement que toutes les formes de boucles peuvent être mises en place avec un while.

Re: Perdu dans un foreach

par Mazarini » 14 juin 2012, 13:55

Pour info : INSERT INTO trou(coup) VALUES(:coup, NOW())
Il y a une seule colonne (coup) et 2 valeurs (:coup et une date)

Re: Perdu dans un foreach

par moogli » 14 juin 2012, 11:24

Le while ne sert strictement à rien et ne fait rien.
Tu pourras le dire à ton ami. ^^

dans ces cas si bien entendu hein :mrgreen:

Re: Perdu dans un foreach

par xTG » 13 juin 2012, 23:15

Le while ne sert strictement à rien et ne fait rien.
Tu pourras le dire à ton ami. ^^

Re: Perdu dans un foreach

par felixbertrand » 13 juin 2012, 20:31

$t = 1;
                while ( $t < 10 )
                {
                    $t++;
                }
                    foreach($_POST['coup'] as $key => $t) {
                    $req = $bdd->prepare('INSERT INTO trou(coup) 
					VALUES(:coup, NOW())');
					$req->execute(array(

                    'coup' => $coup,
					
                    ));
Un ami m'a dis qu'il fallait que je place un while, mais ca me parait étrange. J'ai pas tout compris au foreach aussi .. :/

Re: Perdu dans un foreach

par felixbertrand » 13 juin 2012, 20:17

Merci ! je cogite la dessus

Re: Perdu dans un foreach

par moogli » 13 juin 2012, 19:51

salut,

il faut voir comment tu fait la chose coté client (en html) parce que la soit tu va essayer d'utiliser un tableau a la place d'une chaine et erreur de parse, soit tu va insérer 10 fois la même chose !)

donc si tu a un truc de ce style

<input type="number" name="nbcoup[]" />

tu va avoir un tableau dans $_POST['nbcoup'] (ou GET['nbcoup'] suivant la méthode du formulaire). et c'est la dessus que tu doit faire ton foreach.

par exemple
<?php
foreach($_POST['nbcoup'] as $key => $valeur) {
// la requete SQL
// sachant que $key + 1 peux être le n° du trou si rentré dans l'ordre sinon c'est a gérer :)
}
?>
@+

Perdu dans un foreach

par felixbertrand » 13 juin 2012, 19:26

Bonjour, Je vous explique le topos. Je fais un site sur des statistiques de golf, j'ai 9 input ou je dois entrer les coups fais sur chaque trou ( ex : trou 1 -> 3 coups trou 2-> 5 coups etcc ..)
J'ai donc fais une fonction addTrou et je sais que je dois metre un foreach. Voici ce que j'ai actuellement :
<?php

function addParcours($coup, $bdd)
{
if(isset($coup))
{
if(!empty($coup))
{

$t = 1;
while ( $t < 10 )
{
$t++;

$req = $bdd->prepare('INSERT INTO trou(coup)
VALUES(:coup, NOW())');
$req->execute(array(

'coup' => $coup,

));
}
}
else
{
return false;
}

}
else
{
return false;
}


}

?>

Chaque trou doit avoir un id different bien entendu. Une petite aide sur ma boucle serait la bienvenue :)
PS : mon histoire de while est surement fausse mais bon : /