[PHP] Faire un panier (site marchand)

Faire un panier (site marchand) [PHP] - PHP - Programmation

Marsh Posté le 18-05-2007 à 11:22:08    

Bonjour,
 
Je voudrais faire un panier en php mais je me heurte à quelques difficultés.
Sur 1 page, j'affiche les articles de ma base de données avec une boucle : while ($ligne = mysql_fetch_array($exereq))
 
le problème c'est que j'ai mis des boutons ajouter au panier pour chaque article dans le code et quand j'appuie sur ce bouton, l'utilisateur est redirigé vers son panier avec l'article qu'il a commandé (j'utilise une variable $_POST). Seulement, c'est toujours le dernier article qui est affiché.
 
Je suppose que c'est à cause de la boucle While mais je ne sais pas comment faire pour m'en sortir
 
Pouvez-vous m'aider ?
 
Merci d'avance

Reply

Marsh Posté le 18-05-2007 à 11:22:08   

Reply

Marsh Posté le 18-05-2007 à 11:30:37    

1- sans le code c'est pas facile de t'aider  
 
2- n'oublie que faire u panier , c'est simple . MAis faire une gestion sécurisée ne l'est pas du tout

Reply

Marsh Posté le 18-05-2007 à 11:31:28    

Avec aussi peu d'infos, on peut soit te parler de boule de christal et de madame soleil, soit te demander plus d'infos.
 
En clair, avec au total une seule ligne de code, non on ne peut pas t'aider : comment veux tu qu'on sache ce qui se passe dans le reste du code?

Reply

Marsh Posté le 18-05-2007 à 11:43:47    

Voici le code de ma page qui affiche les articles. Je précise que le 1er code affiche les articles et que pour chaque article l'utilisateur peut cliquer sur le bouton ajouter les articles au panier et cela va rediriger l'utilisateur vers son panier avec l'article sélectionné (et les autres si il en a séléctionné avant). Pour faire passer les informations d'une page à l'autre, j'ai utilisé les champs cachés (dans ce code, je n'ai utilisé que le titre seulement).Le problème est que quand il clique sur le bouton ajouter les articles, même si il ne séléctionne que le 1er article, c'est toujours le dernier article qui est affiché. Cela vient de la boucle While mais je ne sais pas comment faire autrement. Help please.
 
<html>
 <head>
  <title>Catalogue</title>
  <link rel="stylesheet" href="css/f1.css">
 </head>
 <body>
<?php
require('connedb.php');
 
$req ="Select * From media, genre WHERE media.nogenre='genre.nogenre'";
$exereq = mysql_query($req);  
 
 while ($ligne = mysql_fetch_array($exereq))  
  {
        echo"<form method='post' action='reqpanier.php'>
<table width='90%' align='center'height='90%' border='0'  cellpadding='5'>
 <tr><td width='20%' height='95%'>
 <table align='center' border='0' width='95%' height='80%'>
 <tr><td><img src='{$ligne['PhotoMed']}' width='200' height='280'></td></tr>
<tr><td align='center'><b>{$ligne['PrixMed']} €</b>
  </table>
 </td>
 
 <td valign='top' width='80%' >
   <table  align='center' border='0' width='95%' cellspacing='10'>
    <tr>
<td colspan='2' align='center'>{$ligne['TitreMed']}  
    </tr>
    <tr>
     
     <td><b>Genre :</b>{$ligne['Nomgenre']}</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Date de sortie : </b>{$ligne['DatsorMed']}
    <tr><tr>  
    <td>{$ligne['DescriMed']}
    <tr><tr><tr>
    <td align='justify'><hr>{$ligne['ResumMed']}
     
    <input type='hidden' name='tranvar' value='{$ligne['TitreMed']}'>
     
    <br><input type='submit' name='trasmiva' value='Ajouter les articles au panier'>
     
   </table>
 </td>    
</table>";  
 
 }
?>
 <body>
</html>
 
Et là c'est la code qui est utilisé quand l'utilisateur clique sur ajouter au panier :
(je n'ai essayé qu'avec une variable pour l'instant)  
 
<?php
 $res=$_POST['tranvar'];
 
 echo"$res";  
?>
 
Le problème c'est que cela affiche toujours le dernier article

Reply

Marsh Posté le 18-05-2007 à 11:58:40    

Donc ta page panier se limite à :

Code :
  1. <?php
  2. $res=$_POST['tranvar'];
  3.  
  4. echo"$res"; 
  5. ?>


Comment veux tu qu'il t'affiche plusieurs articles? Il n'y a aucune gestion de panier là dedans. Tu ne récupéres pas les articles déjà envoyé plus tôt, d'ailleurs le choix d'un article ne sera stocker nulle part.
 
En fait, j'irais même jusqu'a dire que c'est un code qui ne sert à rien, sa seule utilité serait de débugguer un bout de page s'il y avait quelque chose à tracer. Là, il n'y a rien.
 
Fait toi donc un panier et là on t'aidera par ce que là, il n'y a rien de fait.
 
PS : J'espéres que tu ne comptes pas créer une véritable boutique en ligne avec paiement en ligne par ce que tu n'as vraiment pas le niveau nécessaire. C'est bien de se lancer dans des projets intéressant mais il faut éviter de se lancer dans des peojets critiques qui demandent des conaissances pointus qu'on ne peut acquerir qu'avec beaucoup d'expérience ou à la limite avec des formations trés spécifiques.


Message édité par omega2 le 18-05-2007 à 12:02:59
Reply

Marsh Posté le 18-05-2007 à 12:01:07    

Je sais c'est un code test, je te demande juste de me dire comment récupérer le titre de l'article que j'ai sélectionné dans une autre page s'il te plaît parce que là, ça affiche juste le dernier article.

Reply

Marsh Posté le 18-05-2007 à 12:05:03    

je te conseille de regarder du cote de $_SESSION , si tuveux faire un panier

Reply

Marsh Posté le 18-05-2007 à 12:06:42    

Regarde le HTML généré par le premier code que tu as posté (dans IE clic droit afficher la source).
Ensuite dis-toi bien que tu envoies le contenu de tranvar à ton deuxième code, donc regardes dans le HTML généré la valeur de tranvar et tu devrais comprendre ton erreur :D .

Reply

Marsh Posté le 18-05-2007 à 12:06:55    

Comment veux tu que je te dises comment récupérer le titre d'un article sélectionné 10 minutes plus tôt, ou la veille ou ne seraisse que deux pages avant alors que tu n'as stocké l'information nulle part. Cette info n'existe plus une fois le traitement de la page effectué.

Reply

Marsh Posté le 18-05-2007 à 13:18:48    

Justement, je ne sais pas comment stocker l'information. Tu peux me donner un coup de main ? Tu as une idée de la façon dont je pourrais m'y prendre ?

Reply

Marsh Posté le 18-05-2007 à 13:18:48   

Reply

Marsh Posté le 18-05-2007 à 13:42:47    

3 posts au dessus... :o

Reply

Marsh Posté le 18-05-2007 à 13:49:13    

Oups désolé. D'accord je vois. Oui je sais que mon code php renvoie le dernier article à cause de la boucle while associée à mysql_fetch_array mais je ne sais pas comment m'en sortir.

Reply

Marsh Posté le 18-05-2007 à 16:27:09    

Je suis trop nul !! J'avais oublier de fermer la balise </form> c'est pour ça que ça me donnait toujours le dernier article !!
 
Merci à tous surtout à archangel grâce à qui j'ai trouvé ce qui n'allait pas

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed