Bonjour tout le monde, voila ça fait plusieurs fois que je poste la même question sans vraiment avoir de réponses concrètes, malheureusement je suis en stage et je finis vendredi et sans ça je ne peux pas finir mon projet.
Je dispose d'une fonction donnée si dessus en premier je fais un select qui est censé me récupérer 7 id. Je les stocke dans un tableau avec un mysql_fetch_array ensuite je parcours ce tableau et pour chaque valeur contenue je fais un update en fonction de ce que j'ai récupéré, seulement quand je lance ma requête il ne prend que la première valeur et ne modifie que celle là avec la dernière valeur de mon array définit comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 function modifier_produit_prestashop($key){ $sql3 = mysql_query("SELECT id_product FROM ps_product LIMIT 7"); print_r($sql3); $r = mysql_fetch_array($sql3); print_r($r); foreach($r as $key2){ print_r($key2); $sql5 = mysql_query("update ps_product set price = '".$key."' where id_product = '$key2'"); } }
Pour simplifier ma requête fais ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $output3 = str_replace(",", ".", $output3); $output3 = str_replace("", "", $output3); $output3 = array_filter($output3); var_dump($output3); array_walk($output3, 'modifier_produit_prestashop');
$sql3 sélectionne 1,2,3,4,5,6,7
mon $output3 contient toto, titi, tata, tutu, toutou, trutru, troutrou, tratra
$sql5 update en faisant 1, tratra au lieu de faire:
1 => toto
2 => titi
3 => tata
etc... (Je précise que les nom tata, titi vont venir modifier un champ dans ma bd, en fonction du numéro)
Pourquoi il se passe ceci quelle erreur j'ai commis pour arriver à ce résultat?
Partager