Apprendre panier php

Fermé
mickaelm30 Messages postés 218 Date d'inscription jeudi 28 mai 2009 Statut Membre Dernière intervention 4 mai 2011 - 8 juin 2009 à 17:11
hesa2020 Messages postés 15 Date d'inscription samedi 2 avril 2011 Statut Membre Dernière intervention 28 juillet 2011 - 20 avril 2011 à 01:31
Bonjour à tous,

Je souhaite réaliser un panier électronique pour mon site, et malgrès tous les posts que j'ai pu lire, je ne sais toujours pas comment m'y prendre.J 'espère donc que vous pourrez éclairer ma lanterne :D

Points importants:

1)J'utilise les sessions.

2) Ma BDD surement mal construite pour facilité la création du panier: j'ai créé une table produit(numprod,nomprod...), client(numcli,nomcli...), contenir(numpanier,numprod,qté), panier(numpanier,prixtotal,moderegl,moderetrait,datecmde).

3)page "composant.php": c'est ici que j'affiche tous les produits présent dans ma BDD grace à ma requete et à la boucle while($donnees=mysql_fetch_assoc($req)) ... Pour chaque produit, il y a biensur l'option "ajouter un produit" qui ajoute le produit voulu avec sa quantitée désirée dans ma page panier.php.

Problèmes:

1) Comment faire pour ajouter le produit que le client a choisi, dans son panier.

2)Pour tous ceux qui auront la gentillesse de me venir en aide, si vous pouvez entrée dans le détails le plus possible en faisant comme si j'étais un débutant(ce que je suis peut etre d'ailleur :X), je vous en serai très reconnaissant.


Je vous remerci d'avance pour le temps que vous m'accroderez et vos réponses!

13 réponses

zoby44 Messages postés 818 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 7 avril 2010 199
8 juin 2009 à 22:41
Salut, le plus simple, pour faire un panier, c'est d'utiliser les sessions au maximum.
Pour chaque produit, tu fait un formulaire :
<form action="panier.php" method="post">
<input type="text" name="quantite" value="1"/>
<input type="hidden" name="id_produit" value="15"/>
<input type="submit" value="Ajouter au panier"/>
</form>


Dans la page panier.php, tu récupère les infos que tu stockes dans des session, en attendant la validation de la commande.
<?php
session_start(); // A ne pas oublier sur toutes les pages
$n = count($_SESSION['panier']); // On compte le nombre de sessions
if($n != 0) { // Si il n'y a aucun produit, on laisse le 0 sinon, on incrémente pour ne pas écraser le produit d'avant
$n++; // 
}
$_SESSION['panier'][$n]['quantite'] = $_POST['quantite'];
$_SESSION['panier'][$n]['id_produit'] = $_POST['id_produit'];
?>


Après, pour récupérer les infos :
<?php
$n = count($_SESSION['panier']);
for ($i = 0; $i<$n; $i++) {
echo $_SESSION['panier'][$i]['quantite'].'<br/>';
echo $_SESSION['panier'][$i]['id_produit'].'<br/>';
}
?>


Une fois la commande validée, tu enregistre tout ça dans la bdd :
<?php
$n = count($_SESSION['panier']);
for ($i = 0; $i<$n; $i++) {
$qte .= $_SESSION['panier'][$i]['quantite'].'-';
$id .= $_SESSION['panier'][$i]['id_produit'].'-';
}
?>

Tu entres $qte et $id dans la bdd, avec l'id du client.
En faisant juste un split('-', $qte) pour $qte et $id, tu auras l'id du produit et la quantité qui va bien.

J'espère que ça va te servir. En tout cas, le principe, c'est d'utiliser les sessions comme des array jusqu'a la validation de la commande, qui, une fois validée est entrée dans la bdd sur la même ligne.
Si tu as besoin d'autre explications , hésite pas. Après si tu as bien compris le principe, tu devrais pas avoir de mal pour la modification des quantités et la suppression des produits.
2