cs_titeuf974
Messages postés70Date d'inscriptionsamedi 2 avril 2005StatutMembreDernière intervention 6 février 2007
-
8 avril 2006 à 07:44
cs_titeuf974
Messages postés70Date d'inscriptionsamedi 2 avril 2005StatutMembreDernière intervention 6 février 2007
-
9 avril 2006 à 14:28
Bonjour!
Voila, actuellement je dévelloppe un panier en php utilisant les sessions. Ce dernier fonctionne très bien. Ajout, suppression, modification. Mais le problème se situe au niveau de la gestion des couleurs. Par exemple, j'ai un produit existant dans 4 couleurs (bleu, vert, rose, jaune) . Si je veux rajouter le produit rose, cela fonctionne. Par contre, si je veux ce même produit, mais en vert cette fois, le produit rose de est effacé, et est remplacé par le vert. Je ne peux donc pas avoir plusieurs couleurs du même produit dans mon panier. Quelqu'un saurait-t-il me donner des pistes de recherche???
Voila un bout de code que j'utilise pr l'ajout d'un produit (trouvé ici même mais modifié selon mes besoins....)
if(isset($ref) && isset($qte) && isset($codecouleur)) { //on récupère la référence du produit $produit= $ref; $qte=$qte;
$codecouleur =$codecouleur; $prodexiste= "false";
if(isset($_SESSION['panier']))//Si mon panier existe déja { $prodencours = count ($_SESSION['panier']); $panier = $_SESSION['panier']; // on compte le nombre d'éléments dans le panier...
for($i =0;$i<$prodencours;$i++) { // on fait une boucle qui va passer en revue chaque produit du panier // pour voir si le produit que l'on veut rajouter existe déja if($panier[$i]['ref'] = = $produit) { // le produit existe...
$prodexiste = "true"; // inscrit dans une variable que le produit existe... $prodligne = $i; // et on précise aussi quel est son emplacment dans le caddie
} } if($prodexiste == "true") { // Si le produit est déja présent dans le panier
//la quantité précédente est effacée... array_splice($panier,$prodligne,1); // ...pour laisser place à la nouvelle array_push($panier,array("ref" => $produit,"qte" = > $qte,"couleur"=>$codecouleur));
} else { // sinon on rajoute le produit dans le panier tt simplement... array_push($panier,array("ref" => $produit,"qte" = > $qte,"couleur"=>$codecouleur)); }
} else { // si le panier n'existe pas... // on le créer... $_SESSION['panier'] = array (); // on rajoute le produit et la quantité...et la couleur array_push($_SESSION['panier'],array("ref" => $produit,"qte" => $qte,"couleur"=>$codecouleur)); }
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 8 avril 2006 à 16:01
Salut,
if($panier[$i]['ref'] == $produit) { // le produit existe...
en fait il faudrait que tu compares si les produits n'ont pas les mêmes références, je pense qu'un produit rouge et un produit vert n'ont pas les mêmes références, sinon ça te posera des problèmes en effet.
cs_titeuf974
Messages postés70Date d'inscriptionsamedi 2 avril 2005StatutMembreDernière intervention 6 février 2007 9 avril 2006 à 09:00
Salut! ben en fait le problème est là. La même référence peur se décliner en plusieurs couleurs. Faut-il absolument une référence pour un produit et pour une couleur? Ou bien il y a moyen de modifier le code en prenant en compte la couleur?
Quelque chose du genre :
if($panier[$i]['ref'] == $produit AND $panier[$i]['codecouleur'] == $codecouleur) { // le produit existe...
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 9 avril 2006 à 10:44
Bah tu peux très bien faire ça oui, tu rajoutes un champ couleur, mais bon si t'as des produits qui n'existent qu'en une seule couleur ça fait des données à stocker pour rien. Bref c'est à toi de voir :-)
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 9 avril 2006 à 13:15
Bah je mettrais une référence différente pour chaque produit quelle que soit sa couleur... m'enfin ça dépend énormément de ce que t'as comme produits, c'est à voir en fonction.
cs_titeuf974
Messages postés70Date d'inscriptionsamedi 2 avril 2005StatutMembreDernière intervention 6 février 2007 9 avril 2006 à 13:23
arrffff... c'est vrai. Vu comme ça c bien plus simple. En fait ce sont des oeuvres d'art. Par exemple, j'ai un vase, et ce vase est disponible ds dix couleurs.... Donc, je ne sais pas trops quelle technique adopter. La tienne semble plus facile à mettre en place. Mais......
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 9 avril 2006 à 14:14
Bah vu que chaque produit a une photo différente, une couleur différente, peut-être même un prix différent (lol), je pense qu'une référence unique pour chaque produit serait plus simple. Après tu peux faire aussi un champ "catégorie" qui justement groupera les "mêmes produits" ayant des couleurs différentes.
cs_titeuf974
Messages postés70Date d'inscriptionsamedi 2 avril 2005StatutMembreDernière intervention 6 février 2007 9 avril 2006 à 14:22
lol vu comme ça c plus simple oui!!! Pourrais tu explicité un peu plus ton idée du champ catégorie? Cela pourrait être la solution que je cherche...
merci!!
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 9 avril 2006 à 14:24
Bah pour les deux vases identiques ayant seulement leur couleur qui change (ou le prix, bref pas le produit en lui-même) la catégorie serait la même... après tu nommes ce champ comme tu veux :)