Page 1 sur 1

Probleme de panier

Posté : 29 juil. 2005, 18:49
par Gico
Bonjour
je bosse sur un processus de panier- pas simple pour moi- et j'ai un probleme que je n'arrive pas a regler. C'est un peu longuet et j'espere etre clair.

Voila :

j'ai une page panier.php qui permet de voir les articles ajoutés, cette liste d'articles et ses attributs est stokée dans une variable de session tableau "liste",

ensuite pour valider le panier, le client se connecte à son compte, il peut ensuite acceder à la page commande.php

Cette page recupere l'id du client

je passe sur le processus de connexion et d'initialisation des variables

premier etape

<?php
// l'enregistrement d'une nouvelle commande dans la table commandes en l'associant a d'ildentifiant client

mysql_select_db($database_connexion_db, $connexion_db);
$insertCommande = "INSERT INTO commandes (date, clientID, total) VALUES (NOW(),'$clientID', '$total')";
$Result1 = mysql_query($insertCommande, $connexion_db) or die(mysql_error());
$commandeID=mysql_insert_id();
//récupère l'identifiant client attibué

//recupération des articles et quantité et enregistrement dans la table "listes"
for ($i=0;$i<count($liste);$i++)
{
$reference=$liste[$i][0];
$quantite=$liste[$i][1];
$prixArticle=$liste[$i][2];
//insertion des parametres des articles de la commande et insertion dans une table liste
$insertListe = "INSERT INTO listes (commandeID, reference, quantite, prixArticle) VALUES ('$commandeID', '$reference', '$quantite', '$prixArticle')";
$Result2 = mysql_query($insertListe, $connexion_db) or die(mysql_error());
}
// pour finir destruction de la liste, du total et du drapeau action de la session et redirection vers la page commande.php
session_unregister("liste");
session_unregister("total");
session_unregister("action");
?>
je me retrouve donc avec deux tables qui me premettent d'un coté de recuperer les parametres de la commande a partir de son id (coordonnées clients, date de la commande...) de l'autre les articles de cette commande (table liste ). Avec ça je peu afficher un bon de commande


Mon probleme ce situe là, je n'affiche pas automatiquement la derniere commande, il me faut créer un bouton avec un menu qui recupere toutes les commandes, selectionner la derniere pour l'afficher. ( je peux aussi selectionner des commandes anciennes) .
son code:
<form action="commande.php" method="get" name="commande" id="commande">
<table width="634" border="0">
<tr>
<th scope="row"><div align="right">Voir une ancienne commande
<select name="commandeID" id="commandeID">
<?php
do {
?>
<option value="<?php echo $row_rsSelectCommande['ID']?>"<?php if (!(strcmp($row_rsSelectCommande['ID'], $HTTP_GET_VARS['commandeID']))) {echo "SELECTED";} ?>>N°<?php echo $row_rsSelectCommande['ID']?>du <?php echo $row_rsSelectCommande['date'] ?></option>
<?php
} while ($row_rsSelectCommande = mysql_fetch_assoc($rsSelectCommande));
$rows = mysql_num_rows($rsSelectCommande);
if($rows > 0) {
mysql_data_seek($rsSelectCommande, 0);
$row_rsSelectCommande = mysql_fetch_assoc($rsSelectCommande);
}
?>
</select>
<input type="submit" name="Submit" value="ok">


Ma question est donc comment aprés avoir ecrit dans mes tables extraire directement les elements a afficher de la derniere commande sans action paticulière. Je voudrais me passer completement de ce bouton.

ouf c'est long mais j'espere que c'est a peut prés clair. Merci

Posté : 30 juil. 2005, 02:38
par Shrell
euh je sais pas trop si j'ai compris et si je réponds pas à coté de la plaque, mais comment tu relies les articles à ta commande?
D'un coté tu as :
date, clientID, total
De l'autre:
commandeID, reference, quantite, prixArticle
Donc aucun element commun! ce que je ferais à ta place: inserer dans ta table "commandes" l'id de la commande, ensuite je ferais un
$result=mysql_query("SELECT * FROM listes WHERE commandeID='$idcommande'", $connexion_db) or die(mysql_error());
$r=mysql_fetch_array($result);
tu as maintenant dans ton tableau $r tous les elements de ta commande.
Vala, en espérant t'avoir un petit peu éclairé :p

Posté : 30 juil. 2005, 08:01
par pjl
merci d'éditer ton code et de le mettre en page avec la balise PHP.

Posté : 31 juil. 2005, 10:27
par Gico
Merci pour vos reponses. Je relieles articles a la commande par la "commandeID".
Cela dit j'ai eu une illumination a force de buter sur le processus et sa réalisation, et j'ai commencé a m'y prendre autrement: plutot que de valider la commande au chargement de la page, ce qui ne me permettais pas d'afficher cette commande sans une action supplementaire ( choix d'une commande à afficher, pas cohérent du point de vue de l'utilisateur), j'affiche simplement le bulletin de commande a partir des variables de session ( liste d'articles, connexion du client) et l'inscription dans les tables et la validation se fait a simplement par un bouton "valider". Bref ça fonctionne et c'est même plutot cohérent du point de vu de l'utilisateur.

Merci