Salut, un soucis, besoin d'aide.
Je cherchais un tuto pour implanter un panier sur un site e-commerce, j'ai eu un tuto dont le code me pose des problèmes.
En effet, j'arrive à afficher les produits. Cependant lorsque j'ajoute un produit au panier, il affiche une longue liste et il ne fait plus le total de la somme du panier.
Je ne sais vraiment pas ce qui ne va pas.
Ci-dessous les codes:
Page de la liste des produits "liste_pdt.php"
La page "panier.php"
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 <?php require_once("connexion.php"); // on fait appel à notre fichier de connexion $req=$bdd->query("select * from produit order by nom asc"); // requête de selection // ouverture de la table qui servira de conteneur pour l'affichage de nos produits echo'<table>'; // remplissage de la table crée, chaque ligne de notre table servira de ligne du tableau while($ligne=$req->fetch()) { echo'<tr><td align="center"><img src="pdt/'.$ligne['image'].' " width="150" height="75" title="'.$ligne['description'].'" /> <td> '; echo'<td>'.$ligne['nom'].' </td>'; echo'<td align="center">'.number_format($ligne['prix'],0,'','').' FCFA</td> '; echo'<td align="center"><a href="panier.php?id='.$ligne['id'].' " >Ajouter au panier</a></td></tr> '; } // ferméture du tableau echo'</table>'; ?>
La page de traitement du panier "mon_panier.php"
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 <?php // ouverture d'une session car le contenu du panier sera stocké dans un tableau session Session_start(); $id=$_GET['id']; // récupération de l'id du produit // fonction d'ajout du produit dans le panier, elle initialise la variable $_SESSION['panier'] function add($code,$qt) { $_SESSION['achats'][] = array ("id1" => $code,"statut"=> 0,"qte"=>$qt); } // on teste si la variable $_SESSION['achat'][] existe if(isset($_SESSION['achats'])){ // les lignes de code ci-dessous servent à incrémenter la quantité du produit dans le panier, ainsi chaque fois que l'on choisit d'ajouter un produit, un test est fait pour savoir s'il existe déjà dans le panier ou pas. $count1 = count($_SESSION['achats']); $tab=array(); $tab1=array(); for($i=0;$i<$count1;$i++) { $tab[$i]=$_SESSION['achats'][$i]['id1']; $tab1[$i]=$_SESSION['achats'][$i]['statut']; } if(!in_array($id,$tab)){ add($id,'1'); } else { for($j=0;$j<$count1;$j++) { if($id==$tab[$j]) { if($_SESSION['achats'][$j]['statut']==0) { $q=$_SESSION['achats'][$j]['qte']; $q++; $_SESSION['achats'][$j]['qte']=$q; } else { add($id,'1'); } } } } } // si la variable n'existe, on l'initialise else {add($id,'1'); } $nbre=0; $count = count($_SESSION['achats']); // calcul du nombre de produit dans le panier for($i=0;$i<$count;$i++) { if($_SESSION['achats'][$i]['statut']=='0') { $nbre+=$_SESSION['achats'][$i]['qte']; } } // stockage du nombre de produit dans une variable session $_SESSION['nbre']=$nbre; // redirection après insertion dans le panier echo"<script language='javascript'> document.location.href='mon_panier.php'; </script> "; ?>
Lorsque j'essaie l'exercice voici l'erreur qu'on m'affiche:
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96 <?php Session_start(); // petit test pour voir si le panier existe if(!isset($_SESSION['achats'])) { echo"<script language='javascript'> document.location.href='liste_pdt.php'; </script> "; } ?> <script language="javascript"> // script javascript pour le dynamisme de notre page function fin(){ if(confirm("Voulez vous vraiment annuler votre commande ?")){ document.location.href="fin_achat.php"; } } function effacer(val){ if(confirm("Voulez vous vraiment effacer ce produit de votre panier ?")) { document.location.href="effacer.php?id="+val; } } function payer(){ if(confirm("Voulez vous vraiment valider cette commande ?")){ document.location.href="validation.php"; } } </script> <?php $total=0; $count=count($_SESSION['achats']); $tot=0; if($count==0){ } else{ // le code suivant liste le contenu du panier et nous donne la possibilité de supprimer ou de modifier les quantités des produits du panier ?> <form action="calcul.php" method="post"> <table border='0' CellSpace='2' CellPad='0' width='638'> <?php for($i=0;$i<$count;$i++){ // on parcourt notre tableau session et on ne considère que les lignes encore active if($_SESSION['achats'][$i]['statut']==0) { $id=$_SESSION['achats'][$i]['id1']; // on recupère l'id $qte=$_SESSION['achats'][$i]['qte']; // de même que la quantité require_once('connexion.php'); $req3=$bdd->prepare("select nom, prix from produit where id=$id"); $lig3=$req3->fetch(); $prix=number_format($lig3['prix'],0,'',''); /* <td height='34' class='lie4 zone esp'>$lig3['nom'];</td> */ echo"<tr> <td height='34' class='lie4 zone esp'>$lig3['nom'];</td> <td align='center' class='lie zone'><input type='text' value='$qte' name='$i' size='5' class='li3'></td> <td align='center' class='lie4 zone'>$prix FCFA</td> <td align='center' class='lie zone'><a href='#' onclick='effacer($id)' class='lie41'>Effacer</a></td> </tr>"; // on incrémente le total $tot=$lig3['prix']*$qte; $total+=$tot; } } $prix1=number_format($total,0,'',' '); ?> <tr><td colspan="5"> </td></tr> <tr><td> </td><td bgcolor="#0099CC" class="zone lie4 style7 style4">Prix Total : </td><td class='lie42 zone' align="center"><?php echo $prix1 ?> FCFA</td><td> </td> <td> </td> </tr> <tr><td colspan="5"> </td></tr> <tr><td colspan="2"><div align="center"> <input name="Button2" type="button" class="text6" onclick="fin()" value="Annuler la commande" /> </div></td><td><div align="center"> <input name="Button" type="submit" class="text6" value="Recalculer" /> </div></td><td><div align="center"> <input name="Button" type="button" class="text6" value="Valider" onclick="payer()" /> </div></td> <td> </td> </tr> </table> </form> <?php } ?>
Merci pour toute aide.Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Program Files\wamp\www\test\mon_panier.php on line 65
Partager