Alors :
- Indente proprement ton code : on y verra plus clair
- Ajoute des commentaires : on saura ce qui s'y passe (et l'ordre des actions)
Version imprimable
Alors :
- Indente proprement ton code : on y verra plus clair
- Ajoute des commentaires : on saura ce qui s'y passe (et l'ordre des actions)
Tu as un problème de conception : tu retransmets l'id du produit sélectionné par formulaire lorsque tu demandes à ton utilisateur de confirmer ses coordonnées. Ce n'est pas nécessaire, vu que les ids en question sont dans le panier dans la session.
Donc en fait, il faut virer le for sur lequel le dalmatien et toi vous prenez le chou depuis 20 posts, et ajouter une boucle sur le panier au moment de l'enregistrement :
Quelque chose comme ça :
Sauf que la requête a l'air bizarre :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 $req3 = $bdd->prepare('INSERT INTO produits_commandes(nomp, quantite, prixu, prixtotal, idcmd) VALUES(:nomp, :quantite, :prixu, :prixtotal, :last_id_in_commande)'); $count = count($_SESSION['achats']); for ($i = 0; $i < $count; $i++) { // pour chaque produit du panier : if ($_SESSION['achats'][$i]['statut'] != 0) { $id = $_SESSION['achats'][$i]['id1']; // on recupère l'id // on l'insère en base : $req3->execute(array( ':nomp' => $lig3['nom'], ':quantite' => $qte, ':prixu' => $prix, ':prixtotal' => $tot, ':last_id_in_commande' => $last_id_in_commande ));
- normalement, tu devrais avoir l'id du produit dedans (à la place du nom) :koi:
- stocker le prix total si tu as déjà le prix unitaire et la quantité, c'est redondant, donc inutile (si tu veux récupérer le prix total, il te suffira de faire le calcul dans la requête récupération)
- d'où sortent prix et quantité ? il faut les récupérer dans la session et/ou la base pour chaque produit présent dans le panier.
Donc il faudrait ajuster la requête et la base pour corriger ça, mais l'idée générale est là : une insertion par produit dans le panier, et pas de transmission par formulaire.