Enregistrer un caddie dans mysql
Utilisateur anonyme
-
coeus Messages postés 3021 Date d'inscription Statut Membre Dernière intervention -
coeus Messages postés 3021 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai crée pour mon site un "caddie", mais je n'arrive pas à enregistrer le contenu de ce caddie dans une table que j'appelle "commande",
mon panier est dispo en variable de sessions avec la reference du produit le libellé, la quantité, le prix .
la ou je bloque c'est sur la boucle qui va enregistrer dans mysql !!
quelqu'un peut il m'aider ?
ceci est mon panier au moment de l'enregistrer
merci d'avance
j'ai crée pour mon site un "caddie", mais je n'arrive pas à enregistrer le contenu de ce caddie dans une table que j'appelle "commande",
mon panier est dispo en variable de sessions avec la reference du produit le libellé, la quantité, le prix .
la ou je bloque c'est sur la boucle qui va enregistrer dans mysql !!
quelqu'un peut il m'aider ?
ceci est mon panier au moment de l'enregistrer
if (creationPanier()) { $nbArticles=count($_SESSION['panier']['libelleProduit']); if ($nbArticles <= 0) echo "<tr><td colspan=\"5\">Votre panier est vide </ td></tr>"; else { for ($i=0 ;$i < $nbArticles ; $i++) { echo "<tr>"; echo "<td>".htmlspecialchars($_SESSION['panier']['ref'][$i])."</ td>"; echo "<td>".htmlspecialchars($_SESSION['panier']['libelleProduit'][$i])."</ td>"; echo "<td><input type=\"text\" size=\"3\" name=\"q[]\" value=\"".htmlspecialchars($_SESSION['panier']['qteProduit'][$i])."\" readonly/></td>"; echo "<td align=\"right\">".htmlspecialchars($_SESSION['panier']['prixProduit'][$i])." €</td>"; echo "<td align=\"center\"><a href=\"".htmlspecialchars("?action=suppression&l=".rawurlencode($_SESSION['panier']['libelleProduit'][$i]))."&recordID=".$_GET['recordID']."\"><img src=\"images/supp.png\" width=\"70\" /></a></td>"; echo "</tr>"; } echo "<tr><td colspan=\"2\"><a href=\"cgv.html\" target=\"blank\">conditions générales de ventes</a> </td>"; echo "<td colspan=\"2\" align=\"right\">"; echo "Total : ".MontantGlobal(); echo " €</td></tr>"; echo "<tr><td colspan=\"2\" align=\"right\"></td>"; echo"<td colspan=\"2\" align=\"right\">livraison incluse</td></tr>"; echo "<tr><td colspan=\"4\" align=\"right\">"; echo "<input type=\"submit\" name=\"enr\" value=\"paiement de la commande\"/>"; echo "</td></tr>"; } }
merci d'avance
A voir également:
- Enregistrer un caddie dans mysql
- Audacity enregistrer son pc - Guide
- Comment enregistrer un mail - Guide
- Comment enregistrer une conversation - Guide
- Enregistrer son ecran - Guide
- Mysql community server - Télécharger - Bases de données
4 réponses
Je ne sais pas à quel point tu te débrouilles en MySQL (et en communication entre PHP et ta BDD), je vais donc simplement te donner un lien :
www.w3schools.com/php/php_ref_mysql.asp
Ou plus précisément :
www.w3schools.com/php/func_mysql_query.asp
Ce sont les fonctions PHP qui te permettront d'envoyer tes requêtes à ta BDD.
Peux-tu nous dire si tu connais bien le SQL ? Si tu connaissais déjà les fonctions PHP que je t'ai données ? Si tu sais comment dire à PHP de se connecter à telle ou telle BDD ? Juste avoir une idée de ton niveau, ça va nous aider à te donner des conseils pertinents ;)
Pour le moment j'assume que tu ne connaissais pas, vu que je ne vois aucun mysql_query dans ton code PHP, mais je peux être totalement dans le champ !
www.w3schools.com/php/php_ref_mysql.asp
Ou plus précisément :
www.w3schools.com/php/func_mysql_query.asp
Ce sont les fonctions PHP qui te permettront d'envoyer tes requêtes à ta BDD.
Peux-tu nous dire si tu connais bien le SQL ? Si tu connaissais déjà les fonctions PHP que je t'ai données ? Si tu sais comment dire à PHP de se connecter à telle ou telle BDD ? Juste avoir une idée de ton niveau, ça va nous aider à te donner des conseils pertinents ;)
Pour le moment j'assume que tu ne connaissais pas, vu que je ne vois aucun mysql_query dans ton code PHP, mais je peux être totalement dans le champ !
Ah d'accord je comprends mieux ton problème...
C'est curieux qu'un foreach ne marche pas, c'est probablement la solution que j'aurais tentée en premier. Peux-tu me dire si un message d'erreur ou autre chose t'apparaît quand tu essaies de le faire ?
Ça risque de demander beaucoup de manipulation mais je suis sûr que ça se fait. À moins que quelque chose dans ta construction de formulaires soit tout simplement impropre à une telle opération ?
Peut-être, pour m'aider à visualiser, que tu pourrais me transcrire un print_r de ta variable $_SESSION['panier'], que je puisse voir comment tu organises ton information ?
C'est curieux qu'un foreach ne marche pas, c'est probablement la solution que j'aurais tentée en premier. Peux-tu me dire si un message d'erreur ou autre chose t'apparaît quand tu essaies de le faire ?
Ça risque de demander beaucoup de manipulation mais je suis sûr que ça se fait. À moins que quelque chose dans ta construction de formulaires soit tout simplement impropre à une telle opération ?
Peut-être, pour m'aider à visualiser, que tu pourrais me transcrire un print_r de ta variable $_SESSION['panier'], que je puisse voir comment tu organises ton information ?
bonjour,
désolé j'étais très occupé sur un autre projet , je n'ai pas eu le temps de revenir sur le forum avant, alors j'ai fait le print_r de mon panier et voila ce que ça donne avec un produit dans le panier :
alors je sais qu'il faut que je fasse un foreach, mais je ne sais pas du tout comment on fait , un peu de mal a comprendre comment ça marche
peut tu encore m'aider ?
désolé j'étais très occupé sur un autre projet , je n'ai pas eu le temps de revenir sur le forum avant, alors j'ai fait le print_r de mon panier et voila ce que ça donne avec un produit dans le panier :
Array ( [libelleProduit] => Array ( [0] => bureautique prenium ) [qteProduit] => Array ( [0] => 1 ) [prixProduit] => Array ( [0] => 450 ) [ref] => Array ( [0] => 5 ) [verrou] => )
alors je sais qu'il faut que je fasse un foreach, mais je ne sais pas du tout comment on fait , un peu de mal a comprendre comment ça marche
peut tu encore m'aider ?
Ok je comprends comment ton code marche.
En fait si tu pouvais inverser ta manière de faire, ce serait beaucoup plus facile. Par exemple, au lieu d'avoir :
Ce serait cool que tu aies :
Alors tu pourrais faire deux foreach encastrés et le problème serait réglé.
Mais pour le moment, je vais assumer que tu as de bonnes raisons d'organiser l'info comme tu l'as fait et/ou que ce serait difficile à changer.
Dans ce cas, pas besoin de foreach. En supposant que $nbArticles est défini et correct :
Évidemment ce code peut être à retravailler, et il peut comporter quelques erreurs de syntaxe, je n'ai pas pu le tester. Mais ça te donne l'idée.
Dis-moi si ça te convient et si ça fonctionne ! :)
En fait si tu pouvais inverser ta manière de faire, ce serait beaucoup plus facile. Par exemple, au lieu d'avoir :
$panier = [ $produits = [ $produit1, $produit2, $produit3 ], $quantites = [ $quantite1, $quantite2, $quantite3 ], $prix = [ $prix1, $prix2, $prix3 ] ];
Ce serait cool que tu aies :
$panier = [ produit1 = [ produitID, qte, prix ], produit2 = [ produitID, qte, prix ], produit3 = [ produitID, qte, prix ], ];
Alors tu pourrais faire deux foreach encastrés et le problème serait réglé.
Mais pour le moment, je vais assumer que tu as de bonnes raisons d'organiser l'info comme tu l'as fait et/ou que ce serait difficile à changer.
Dans ce cas, pas besoin de foreach. En supposant que $nbArticles est défini et correct :
$panier = $_SESSION['panier']; if ($x=0; $x<$nbArticles; $x++) { $requete = 'INSERT INTO ma_table(produit, qte, prix, ref, verrou) VALUES (' . $panier[0][$x] . ',' . $panier['qteProduit'][$x] . ',' . $panier['prixProduit'][$x] . ',' . $panier['ref'][$x] . ',' . $panier['verrou'][$x] . ');' }
Évidemment ce code peut être à retravailler, et il peut comporter quelques erreurs de syntaxe, je n'ai pas pu le tester. Mais ça te donne l'idée.
Dis-moi si ça te convient et si ça fonctionne ! :)
merci
www.w3schools.com/php/func_mysql_connect.asp
Avec ça tu auras ta variable à passer dans toutes les fonctions où tu interagis avec la BDD.
Après il ne restera plus qu'à composer le SQL, le reste du PHP va être assez répétitif :
Remarque : la boucle while ne sert que lorsque tu fais une recherche dans la base de données (SELECT), quelque chose qui te retourne un résultat. C'est ce while qui te permettra d'afficher les résultats en tableau, par exemple. Si tu fais par exemple une requête INSERT, ton code peut s'arrêter au mysql_query.
si quelqu'un peut me donner le nom de la fonction qui permet cela , ce serait cool !!!