Perdu dans un foreach

Eléphanteau du PHP | 10 Messages

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 : /

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

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 :)
}
?>
@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 10 Messages

13 juin 2012, 20:17

Merci ! je cogite la dessus

Eléphanteau du PHP | 10 Messages

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 .. :/

ViPHP
xTG
ViPHP | 7331 Messages

13 juin 2012, 23:15

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

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:
Il en faut peu pour être heureux ......

ViPHP
ViPHP | 2577 Messages

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)

Mammouth du PHP | 2278 Messages

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.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD