Enregistrement de la 1ere ligne du tableau uniquement
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.
Code:
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'");
}
} |
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:
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'); |
Pour simplifier ma requête fais ceci :
$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?
POURQUOI CELA NE FONCTIONNE PAS!
Tout d'abord merci de m'avoir répondu, ensuite j'ai fait comme tu m'as dis donc il modifie bien en fonction de ce que je récupère mais il ne prend que la dernière données de mon tableau, tu saurais pourquoi cela fait ça?
POURQUOI CELA NE FONCTIONNE PAS!
J'obtiens ça sur mon écran = Resource id #14392393394395396397Resource id #15392393394395396397Resource id #16392393394395396397Resource id #17392393394395396397Resource id #18392393394395396397Resource id #19392393394395396397Resource id #20392393394395396397
et dans ma base j'ai :
0.000000
1.650000
1.650000
1.650000
1.650000
1.650000
1.650000
POURQUOI CELA NE FONCTIONNE PAS!
Bah non il est mit a jour que pour 6 alors que j'ai 7 variables à mettre à jour et de plus j'ai différents prix dans mon tableau que voici :
1 => string ' 0.19' (length=5)
3 => string ' 0.19' (length=5)
5 => string ' 0.22' (length=5)
7 => string ' 0.14' (length=5)
9 => string ' 0.18' (length=5)
11 => string ' 1.65' (length=5)
13 => string ' 1.65' (length=5)
J'ai passé un filtre pour enlever les lignes vides.
POURQUOI CELA NE FONCTIONNE PAS!
Merci beaucoup pour tes conseils, je vais tester ça tout de suite. Ce que je cherche a faire c'est ça en ce moment j'ai 7 numéros de produit comme ceci:
398
399
400
401
402
403
404
Ces numéros sont créés de façon automatique le champ est en auto_incrementation
mon tableau de prix contient ceci :
1 => string ' 0.19' (length=5)
3 => string ' 0.19' (length=5)
5 => string ' 0.22' (length=5)
7 => string ' 0.14' (length=5)
9 => string ' 0.18' (length=5)
11 => string ' 1.65' (length=5)
13 => string ' 1.65' (length=5)
et je cherche a faire :
398 1 => string ' 0.19' (length=5)
399 3 => string ' 0.19' (length=5)
400 5 => string ' 0.22' (length=5)
401 7 => string ' 0.14' (length=5)
402 9 => string ' 0.18' (length=5)
403 11 => string ' 1.65' (length=5)
404 13 => string ' 1.65' (length=5)