UPDATE et boucle FOR

Petit nouveau ! | 6 Messages

27 mai 2009, 10:30

Bonjour,

J'essaye de modifier plusieurs tables d'une base de données en même temps, mais je n'y arrive pas.
En fait il s'agit d'un extranet qui permet de gérer des stocks, l'utilisateur voit les produits et les stocks disponibles et peut ajouter les articles à son panier tant que le stock n'est pas à zero.

Le problème est que la bdd est assez mal foutue au départ (et je ne peux pas la modifier), je m'explique :

Les articles existent en plusieurs couleurs, et donc une quantité pour chaque couleur (exemple 3 tshirt rouge, 7 tshirt vert, 2 tshirt jaune ect...)
Et tout ça est contenu dans une seule table, avec une colonne couleur1, couleur2, couleur3.... quantite1, quantite2, quantite3.... Quantite1 correspondant au stock du produit en couleur1, quantite2 au stock du meme produit en couleur2, ect...

J'essaie donc de faire une fonction qui mettrait à jour les quantités en fonctions des produits qui ont été ajouté dans le panier.
Je pensais faire une boucle for, mais cela n'a pas l'air de marcher...

function updateDB() {
	for ($i = 0; $i < 10; $i++) {
		$query= "UPDATE CYCLUS_boutique_produits
			       SET quantite.$i = quantite.$i - {$_SESSION['panier']['quantite'][$i]}, 
			       WHERE nom={$_SESSION['panier']['nom'][$i]} AND couleur.$i={$_SESSION['panier']['couleur.$i'][$i]}";	
 
		mysql_query($query);
	}
}

Mammouth du PHP | 991 Messages

27 mai 2009, 12:18

La premiere chose est de tester ta requete dans PHPMyAdmin avec ta valeur en brut (PHPMyAdmin ne connait pas tes sessions ;) )

Ensuite rajoute en meme temps un petit :
$sql = 'ma requete';
mysql_query($sql) or die("Erreur sql : ".$sql."<br />".mysql_error());
Voila après cela tu pourras sans doute retrouver ton erreur ;)
DevOps, Symfony4, Hoa

Petit nouveau ! | 6 Messages

27 mai 2009, 12:29

Le problème c'est que je ne vois pas comment passer les $i dans phpMyAdmin :(

Mammouth du PHP | 991 Messages

27 mai 2009, 12:50

Tu as écrit :
for ($i = 0; $i < 10; $i++) { 
Je serai donc tenter de te dire de prendre la valeur de $i =0

Par exemple si :
$_SESSION['panier']['quantite'][0] = 1
$_SESSION['panier']['nom'][0] = 'T-Shrit 18222'
$_SESSION['panier']['couleur0'][0] = noir

alors ta devra mettre dans phpMyadmin :

Code : Tout sélectionner

$query= "UPDATE CYCLUS_boutique_produits SET quantite0 = quantite0 - {1}, WHERE nom={'T-Shrit 18222'} AND couleur0={'noir'}";


Enfin quelque chose dans cet esprit ;)
Bonne aprem Hawk
DevOps, Symfony4, Hoa