Modérateur PHPfrance |
10684 Messages
30 janv. 2007, 13:41
Le problème ne vient pas du tableau de données $actiVelo qui est correctement parcouru, mais de ce que tu fais de ces données
Si on suit le traitement pas à pas, tu vas récupérer les données du premier enregistrement ($i==0) et faire l'update suivant (je garde tes données d'exemple Num_prog_cycliste = 1 et Id_sportif = 3) :
"UPDATE programme_proposee SET
Type_activite_velo = '".$actiVelo[0]."',
Consigne = '".$cons[0]."'
WHERE Num_prog_cycliste=1 AND Id_sportif=3"
A partir de la, toutes les lignes de ta base pour lesquelles Num_prog_cycliste == 1 et Id_sportif == 3 auront les valeurs de la première ligne de ton tableau
Puis on passe à l'itératon suivante ($i==1), ta requête devient :
"UPDATE programme_proposee SET
Type_activite_velo = '".$actiVelo[1]."',
Consigne = '".$cons[1]."'
WHERE Num_prog_cycliste=1 AND Id_sportif=3"
Et toutes les lignes de ta base pour lesquelles Num_prog_cycliste == 1 et Id_sportif == 3 (donc celles précédemment mises à jour) vont maintenant prendre les valeurs de la 2ème ligne de ton tableau, écrasant ainsi les données précédement enregistrées.
Idem pour la 3ème, 4ème, ... jusqu'à la dernière. Tu obtiens donc partout le résultat de la dernière ligne du tableau, qui vient écraser toutes les autres.
En fait, il doit te manquer une condition dans le WHERE pour que chaque ligne du tableau impacte une seule ligne de ta base et ne soit pas écrasée par l'update suivant...

Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...