Page 1 sur 1

UPDATE et boucle FOR

Posté : 27 mai 2009, 10:30
par bidoum
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);
	}
}

Posté : 27 mai 2009, 12:18
par thehawk
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 ;)

Posté : 27 mai 2009, 12:29
par bidoum
Le problème c'est que je ne vois pas comment passer les $i dans phpMyAdmin :(

Posté : 27 mai 2009, 12:50
par thehawk
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