bug que je ne trouve pas sur mon panier

bug que je ne trouve pas sur mon panier - PHP - Programmation

Marsh Posté le 12-04-2009 à 22:14:17    

salut a tous
 
Je suis en trains de coder une boutique et j'ai un petit problème avec le panier et le suppression d'un article.
 
Quand j'ai plus d'un article dans le panier la suppression se fait bien, mais quand je veux supprimer le dernier article qu'il reste dans le panier il ne se supprime pas.
Voilà donc mon code, si vous avez une idée du problème car je dois avoir trop la tête dedans car je ne trouve pas le problème. Merci
 
Mon code:

Code :
  1. .....
  2. else
  3. {
  4. $erreur=false;
  5. if(in_array( $_POST['action'],array('ajout', 'suppression', 'refresh', 'vider')))
  6.   $action = $_POST['action'];
  7. else
  8.   $erreur=true;
  9. $id_produit = intval($_POST['id_produit']);
  10. $nom = preg_replace('#\v#', '', $_POST['nom']);
  11. $quantite = intval($_POST['quantite']);
  12. $prix = floatval($_POST['prix']);
  13. }
  14. }
  15. if ($erreur==false)
  16. {
  17. switch($action)
  18. {
  19.   Case "ajout":
  20.   ajouterArticle($id_produit,$nom,$quantite,$prix);
  21.   break;
  22.   Case "suppression":
  23.   supprimerArticle($id_produit);
  24.   break;
  25.  
  26.   Case "vider":
  27.   unset($_SESSION['panier']);
  28.   break;
  29.   Case "refresh" :
  30.   for ($i = 0 ; $i < count($quantite) ; $i++)
  31.   {
  32.     modifierQTeArticle($_SESSION['panier']['libelleProduit'][$i],round($quantite[$i]));
  33.   }
  34.   break;
  35.   Default:
  36.   break;
  37.      
  38. }
  39. .....


 
ma fonction supprimerArticle($id_produit):

Code :
  1. function supprimerArticle($libelleProduit)
  2. {
  3. if (creationPanier())
  4. {
  5.   $tmp=array();
  6.   $tmp['libelleProduit'] = array();
  7.   $tmp['nomProduit'] = array();
  8.   $tmp['qteProduit'] = array();     
  9.   $tmp['prixProduit'] = array();
  10.      
  11.   for($i = 0; $i < count($_SESSION['panier']['libelleProduit']); $i++)
  12.   {
  13.    if ($_SESSION['panier']['libelleProduit'][$i] !== $libelleProduit)
  14.    {
  15.     array_push( $tmp['libelleProduit'],$_SESSION['panier']['libelleProduit'][$i]);
  16.     array_push( $tmp['nomProduit'],$_SESSION['panier']['nomProduit'][$i]);
  17.     array_push( $tmp['qteProduit'],$_SESSION['panier']['qteProduit'][$i]);
  18.     array_push( $tmp['prixProduit'],$_SESSION['panier']['prixProduit'][$i]);
  19.    }
  20.      
  21.   }


Message édité par hppp le 12-04-2009 à 22:14:31
Reply

Marsh Posté le 12-04-2009 à 22:14:17   

Reply

Marsh Posté le 14-04-2009 à 16:04:20    

A priori le problème vient de ta fonction supprimerArticle.
 
Le plus simple, dans un premier temps, c'est d'afficher les valeurs utilisées (ou d'utiliser un outil pour déboguer) :
Mettre des echo $mavariable; et des var_dump($monarray) régulièrement, pour voir ce qui cloche...
 
Sinon :
-  Tu appelles supprimerArticle($id_produit);, mais tu définis ta function supprimerArticle($libelleProduit)
Essaye de conserver des noms parlants et cohérents. Ta fonction travaille sur l'ID ou sur le libellé ?
 
- J'ai du mal à comprendre la logique de la fonction supprimerArticle.
Ce ne serait pas plus simple de constriuire ton tableau $_SESSION['panier'] de cette manière :
$_SESSION['panier'][$i]['libelleProduit']
Du coup, tu n'aurais qu'à faire un unset($_SESSION['panier'][$i]) pour supprimer l'article correspondant...

Reply

Sujets relatifs:

Leave a Replay

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