Panier en PHP

Panier en PHP - PHP - Programmation

Marsh Posté le 26-11-2008 à 21:33:47    

Bonsoir à tous,  
 
Je suis entrain de réaliser un site commercial, dans lequel on peut choisir des articles d'une base de données mysql.
On peut ajouter les articles choisis dans un panier.
Jusque la tout va bien, j'arrive à afficher tous mes articles dans une page "panier.php".  
J'ai créé une fonction vider_panier qui comme son nom l'indique, vide tout le panier :  
 
 function vider_panier()
 {
  if(isset($_SESSION['panier']))
  {
   unset($_SESSION['panier']);  
  }
 }  
Tout le panier se vide comme prévu, mais dès que je vais sur la page index.php et que je retourne sur la page panier.php, tous les articles de mon paniers sont de retour, alors qu'ils ont été supprimés juste avant.
je vous copie colle tout le code de la page panier.php :  
 
    <?php
      session_start();
      $db_connect = mysql_connect('localhost', 'root', '');  
      $db = mysql_select_db('site_mencls',$db_connect);      
 if (!$db)
 {
  die("<p>La selection de la base $base a échoué -
  Fin du programme </p>" ) ;
 }    
 
 if (isset($_GET['article']))
 {
  $id = $_GET['article'];
  // on crée la requête SQL
  $sql = "SELECT id_article, nom_article, prix FROM article WHERE id_article = '".$id."'";
  // on envoie la requête
  $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());    
   
 }  
 
 if(!isset($_SESSION['panier']))
 {  
  $_SESSION['panier'] = array();
  $_SESSION['panier']['id_article'] = array();
  $_SESSION['panier']['nom_article'] = array();
  $_SESSION['panier']['prix'] = array();
 }  
 
 if(isset($req))
 {  
  while($data = mysql_fetch_assoc($req))  
        {
   array_push($_SESSION['panier']['id_article'], $data['id_article']);
   array_push($_SESSION['panier']['nom_article'], $data['nom_article']);
   array_push($_SESSION['panier']['prix'], $data['prix']);
  }
     
  $nbArticles=count($_SESSION['panier']['id_article']);
  if ($nbArticles <= 0)
  {
   echo "<tr><td>Votre panier est vide </ td></tr>";
  }
  else
  {
   for ($i=0 ;$i < $nbArticles ; $i++)
   {
 
    echo  '<p>'.$_SESSION['panier']['nom_article'][$i].' '.$_SESSION['panier']['prix'][$i].' '.$_SESSION['panier']['id_article'][$i].'</p>';
    echo '<p>'.$nbArticles.'</p>';
   }
   
  }
 }
 
 function vider_panier()
 {
  if(isset($_SESSION['panier']))
  {
   unset($_SESSION['panier']);  
  }
 }  
  echo '<form><input type="submit" value="Vider le panier" onClick=vider_panier()/></form>';  
    ?>
 
 
Quelqu'un aurait-il une idée ?
Merci d'avance!

Reply

Marsh Posté le 26-11-2008 à 21:33:47   

Reply

Marsh Posté le 27-11-2008 à 11:24:10    

t'appelles avec un "onclick" (javascript) une fonction PHP ? o_0
Es-tu sûr que ton unset soit bien effectué si ça marche ?
(affiche un echo juste à côté pour voir ...)


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 27-11-2008 à 16:15:52    

Euh ça marche pas, point barre.
L'auteur de ce topic n'a rien compris au fonctionnement de php, je l'invite fortement à revoir les notions de client et de serveur dans le contexte du web, et à quel endroit s'exécutent les différents langages qu'il utilise.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 27-11-2008 à 17:00:21    

ça aurait pu marcher s'il passait par de l'AJAX, mais si on considère avoir la totalité du code sous les yeux, c'est clair que c'est pas prévu pour fonctionner.

Message cité 1 fois
Message édité par NewsletTux le 27-11-2008 à 17:00:36

---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 27-11-2008 à 17:04:10    

NewsletTux a écrit :

ça aurait pu marcher s'il passait par de l'AJAX, mais si on considère avoir la totalité du code sous les yeux, c'est clair que c'est pas prévu pour fonctionner.


euh non, ça aurait pas pu. Il appelle pas un script php, il appelle une fonction.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 27-11-2008 à 17:07:20    

il appelle un fonction javascript qui elle aurait pu appeler un script php avec de l'AJAX ;)

Reply

Marsh Posté le 27-11-2008 à 17:08:20    

yellu a écrit :

il appelle un fonction javascript qui elle aurait pu appeler un script php avec de l'AJAX ;)


 
s'il ne sait pas qu'il appelle une fonction javascript, ça ne compte pas :o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 27-11-2008 à 17:47:17    

Bon j'explique à l'auteur :
Javascript s'exécute côté client, PHP côté serveur.
Le seul moyen de faire le lien entre les deux est Ajax.

Reply

Marsh Posté le 27-11-2008 à 17:55:24    

bonjour le raccourci.[:pingouino]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 27-11-2008 à 18:04:35    

c'est toujours mieux que pas d'explication :o

Reply

Marsh Posté le 27-11-2008 à 18:04:35   

Reply

Marsh Posté le 27-11-2008 à 20:56:52    

mencls a écrit :

Je suis entrain de réaliser un site commercial


 

mencls a écrit :

(Question qui montre que l'auteur n'a qu'un faible niveau pour réaliser un tel site, avec les conséquences financières désastreuses que cela peut avoir)


 
[:prozac]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Sujets relatifs:

Leave a Replay

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