Session : prob d'ajout de données

Signaler
Messages postés
195
Date d'inscription
mardi 22 février 2005
Statut
Membre
Dernière intervention
26 octobre 2009
-
Messages postés
195
Date d'inscription
mardi 22 février 2005
Statut
Membre
Dernière intervention
26 octobre 2009
-
Yaoh !

voilà pour faire mon panier virtuel, j'utilise des sessions. Je mets bien le session_start() ; en début de code et j'appelle cette fonction pour ajouter des panneaux de polices (pour chaque panneaux, je dois conserver une référence, une référence sur la taille, une quantité pour cette taille et une classe (une propriété du panneaux). Voilà la fonction :

function ajouter_pan($ref,$reft,$qte,$classe)
{
   if(isset($_SESSION['Panneaux']))
   {
      $nb = count($_SESSION['Panneaux']) ;
      $existe = 0 ;
      for ($i=0;$i < $nb;$i++)
      {
         if($_SESSION['Panneaux'][$i]['Ref'] == $ref)
         {
            $existe = 1 ;
            $nbtaille = count($_SESSION['Panneaux'][$i]['Taille']) ;
            $existetaille = 0 ;
            for ($j=0;$j < $nbtaille;$j++)
            {
               if($_SESSION['Panneaux'][$i]['Taille'][$j]['Reftaille'] == $reft)
               {
                  $existetaille = 1 ;
                  $_SESSION['Panneaux'][$i]['Taille'][$j]['Qte'] += $qte ;
               }
            }
            if(!$existetaille)
            {               $taille array("RefTaille"> $reft, "Qte" => $qte, "Classe" => $classe) ;
               $_SESSION['Panneaux'][$i]['Taille'][] = $taille ;
            }
           }
         }
         if(!$existe)
         {            $taille array("RefTaille"> $reft, "Qte" => $qte, "Classe" => $classe) ;
            $_SESSION['Panneaux'][] = array ("Ref" => $ref, "Taille" => $taille) ;
         }
      }
      else
      {         $taille array("RefTaille"> $reft, "Qte" => $qte, "Classe" => $classe) ;
         $_SESSION['Panneaux'][] = array ("Ref" => $ref, "Taille" => $taille) ;
      }
   }

Petites explications : avec cette fonction, je vérifie si un panneaux existe déjà avant de compter. Ensuite, je regarde si le panneaux est déjà présent et dans ce cas, si la même taille a déjà été renseignée. Si c'est le cas, je rajoute la quantité. Sinon, je la met en plus.
Le problème c'est qu'il n'ajoute qu'un paneaux. Je m'explique, g fait un ajout manuel afin de tester ma fonction et g appeler trois fois cette fonction de suite avec des paramètres différents. Mais il ne prend en compte que mon premier ajout. Pouvez-vous m'aider ?

1 réponse

Messages postés
195
Date d'inscription
mardi 22 février 2005
Statut
Membre
Dernière intervention
26 octobre 2009
1
Je précise kkchose ke je viens de voir à l'instant : il ajoute bien la référence du panneaux. C'est lui associer les tailles qui cloche. Il associe une taille o premier panneaux, mais il n'en associe pas d'autre pour le meme panneaux, ou une taille pour un autre panneaux.