code version 1
Bonjour
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70 <?php if(isset($_POST['ajouter']) && !empty($_POST['id']) && !empty($_POST['qte']) && $_POST['qte']!=0) { $id = $_POST['id']; $qte = $_POST['qte']; $connexion=ConnectBD(); //si le panier est vide====================================> if (empty($_SESSION['panier'])) { $_SESSION['panier']=array(); $_SESSION['panier'][$id]=$qte; } //si panier déjà rempli===================================> else { echo "panier : "; var_dump($_SESSION['panier']); //suppression d'un article (on a cliqué sur un bouton supprimer) if(isset($_POST['supprimer'])) { unset($_SESSION['panier'][$id]); echo $qte.' produits supprimé du panier!!'; } else { //Ajout d'un nouvel id et une nouvelle quantité ou modification de la quantité d'un article if(isset($_SESSION['panier'][$id])) { $_SESSION['panier'][$id] += $qte; } else { $_SESSION['panier'][$id] = $qte; } $panier=$_SESSION['panier']; foreach($panier as $key=>$value) { echo '<br />produit: '.$key.' - quantite: '.$value.'<br />'; $quantite=intval($value); } // on "extrait" les id du panier $id_liste=implode('","',array_keys($_SESSION['panier'])); $id_liste='"'.$id_liste.'"'; //requete sur la table avec tous les id présents dans $id_liste $sql="SELECT * FROM produits WHERE code_produit IN ($id_liste)"; $requete=TraiterRequete($sql); while($data=mysql_fetch_assoc($requete)) { $prix=floatval($data['prix_produit_htva']); echo'Produit: '.$data['nom_produit'].' - Quantité: '.$quantite.' - Prix à l\'unité: '.$prix.' - Prix de toutes les pièces: '.($data['prix_produit_htva']*$quantite).'<br />'; } } } } else { echo "rien"; } ?>
j'en suis tjrs à l'ébauche d'un panier produit
Pour l'instant ce code (version 1) m'affiche ceci:
produit: cia_tos - quantite: 1
produit: san_cam - quantite: 2
Produit: Ciabatta Toscane - Quantité: 2 - Prix à l'unité: 4.4 - Prix de toutes les pièces: 8.8
Produit: sandwich Campagnard - Quantité: 2 - Prix à l'unité: 3.9 - Prix de toutes les pièces: 7.8
Le problème est le suivant(entre le foreach et la fin du code) :
1.La quantité est juste dans les 2 premières lignes mais pas dans les 2 dernières lignes
2.je voudrais afficher la ligne 1 avec la ligne 3 et la ligne 2 avec la ligne 4 pour cela
j'ai comme option de mettre un if à la place du while et de mettre ce if dans la boucle for each,
mais en le faisant je crée une différence entre produits et code_produit (et non plus entre quantités).
Je suis une x de plus calé à ce stade.
J'aurais besoin de guides.
Je poste les 2 versions du code...
Merci.
code version2:
affiche ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68 <?php if(isset($_POST['ajouter']) && !empty($_POST['id']) && !empty($_POST['qte']) && $_POST['qte']!=0) { //recupération des données $id = $_POST['id']; $qte = $_POST['qte']; $connexion=ConnectBD(); //si le panier est vide====================================> if (empty($_SESSION['panier'])) { $_SESSION['panier']=array(); $_SESSION['panier'][$id]=$qte; } //si panier déjà rempli===================================> else { echo "panier"; var_dump($_SESSION['panier']); //suppression d'un article (on a cliqué sur un bouton supprimer) if(isset($_POST['supprimer'])) { unset($_SESSION['panier'][$id]); } else { //Ajout d'un nouvel id et une nouvelle quantité ou modification de la quantité d'un article if(isset($_SESSION['panier'][$id])) { $_SESSION['panier'][$id] += $qte; } else { $_SESSION['panier'][$id] = $qte; } $panier=$_SESSION['panier']; foreach($panier as $key=>$value) { echo '<br />produit: '.$key.' - quantite: '.$value.'<br />'; // on "extrait" les id du panier $id_liste=implode('","',array_keys($_SESSION['panier'])); $id_liste='"'.$id_liste.'"'; //requete sur la table avec tous les id présents dans $id_liste $sql="SELECT * FROM produits WHERE code_produit IN ($id_liste)"; $requete=TraiterRequete($sql); if($data=mysql_fetch_array($requete)) { $prix=floatval($data['prix_produit_htva']); $quantite=intval($value); echo'Produit: '.$data['nom_produit'].' - Quantité: '.$quantite.' - Prix à l\'unité: '.$prix.' - Prix de toutes les pièces: '.($quantite*$prix).'<br />'; } } } } } else { echo "rien"; } ?>
produit: cia_tos - quantite: 1
Produit: Ciabatta Toscane - Quantité: 1 - Prix à l'unité: 4.4 - Prix de toutes les pièces: 4.4
produit: san_cam - quantite: 2
Produit: Ciabatta Toscane - Quantité: 2 - Prix à l'unité: 4.4 - Prix de toutes les pièces: 8.8
nom_produit et code_produit ne correspondent pas.
Partager