tu as raison Cyrano, je vais mieux expliquer la problématique :
- J'ai une page
catalogue.php avec la liste des produits et un lien cliquable : ajouter au panier. Je transfère par l'url ($_GET), les caractéristiques du produit.
Dans ma page
panier.php :
Je commence par la condition : si on a ajouté un article (donc cliqué sur le lien) alors on met les variables en session dans un tableau.
if ($ajoutPanier=="AJOUTER")
{
$ID_session=$_GET['ID_session'];
$nb=1; //par défaut la quantité est = 1
$prix=$_GET['prix'];
$liste[]=array($ID_session,$nb,$prix,$prix);
$_SESSION['liste']=$liste;
//ajoute un article à la liste
}
Plus bas, pour afficher les articles sélectionnés :
<?php
$total=0.00;
for ($i=0;$i<count($liste);$i++)
{
$query_Panier="SELECT * FROM sessions where ID_session = '".$liste[$i][0]."'";
//echo $query_Panier;
$rsPanier = mysql_query($query_Panier, $connexion) or die(mysql_error());
$row_Panier = mysql_fetch_assoc($Panier);
?>
Tout fonctionne.
Dans le panier, si l'on clique sur "commander", on est dirigé vers un écran d'authentification, puis sur la page liste de mes commandes.
Le petit souci que j'ai est d'afficher le "détail" qui est lié à la référence sur la page "commande.php".
Je n'affiche pour le moment que la référence, la quantité, et le prix. Normal mon tableau ne contient que ces trois variables.
Dans mon exemple, la
référence s'appelle : ID_session.
J'ai 4 tables organisées de la façon suivante :
- les cours.....avec ID_cours, description, prix, etc...
- les sessions : ID_session, ID_cours, date, total participants
- les listes : ID, commandeID, ID_session, qauntite, prixCours. Cette table est enrichie à chaque fois que l'on clique sur commander.
- les commandes : ID, date_cde, clientID, etat (attente/vadidee) et total. Cette table est également enrichie à chaque clic sur commander et est destinée à l'administrateur du site pour qu'il gère les commandes et en modifie l'état.
Voici le tableau que je reprends sur la page
commande.php
for ($i=0;$i<count($liste);$i++)
{
$ID_session=$liste[$i][0]; //récup de la ref du cours dans le panier
$quantite=$liste[$i][1]; // récup de la quantité du cours dans le panier
$prixCours=$liste[$i][3]; // récup du prix total de ces cours (nb*prix unitaire) dans le panier
// INSERTION DES PARAMETRES DES ARTICLES DE LA COMMANDE
$insertListe = "INSERT INTO listes (commandeID, ID_session, quantite, prixCours) VALUES ('$commandeID', '$ID_session', '$quantite', '$prixCours')";
// puis je fais des requêtes pour afficher la liste des commandes par client, et le contenu de la commande
if (isset($_GET['commandeID'])) {
//etc
Comme je ne maîtrise pas les tableaux....j'ai un peu de mal à l'initaliser dans ma page panier.
Mon tableau mémorise les infos :
[0] = référence
[1] = quantite
[2] = prix unitaire
[3] = prix total
J'ai essayé de rajouter l'intitule du cours :
$ID_session=$_GET['ID_session'];
$nb=1; //par défaut la quantité est = 1
$intitule=$_GET['intitule'];
$prix=$_GET['prix'];
$liste[]=array($ID_session,$nb,$prix,$prix,$intitule);
$_SESSION['liste']=$liste;
//ajoute un article à la liste
Puis dans la page commande :
//init de la liste:
if (!isset($_SESSION['liste'])) $liste[]=array("VIDE",1,0,0,0);// init de la liste si vide, j'ai rajouté un '0'
else $liste=$_SESSION['liste']; //recup de la liste de session
.../...
for ($i=0;$i<count($liste);$i++)
{
$ID_session=$liste[$i][0]; //récup de la ref de l'article dans le panier
$quantite=$liste[$i][1]; // récup de la quantité de cet article dans le panier
$prixCours=$liste[$i][3]; // récup du prix total de ces articles (nb*prix unitaire) dans le panier
$intitule=$liste[$i][4];//récup de l'intitule
// INSERTION DES PARAMETRES DES ARTICLES DE LA COMMANDE
$insertListe = "INSERT INTO listes (commandeID, ID_session, quantite, prixCours, intitule) VALUES ('$commandeID', '$ID_session', '$quantite', '$prixCours', '$intitule')";
J'ai deux problèmes :
1. l'enregistrement de l'intitulé ne se fait pas...
2. ce message avant l'affichage de la commande : Erreur de syntaxe près de 'Atelier du mercredi')' à la ligne 1
Est-ce que ça vient du fait que le type de valeur de la variable est une chaine et non un entier ?
Le premier souci dont j'ai parlé, était de récupérer les détails de la référence, une fois l'enregistrement fait. Comme ces derniers n'étaient pas dans le tableau du panier, ils changeaient à chaque fois que j'ajoutais un article dans la liste...et étaient tous identiques.
1. référence 1 -> blabla
2. référence 2 -> blabla et non 'bipbip'
Difficile d'être claire quand on débute
