session, double affichage

session, double affichage - PHP - Programmation

Marsh Posté le 24-03-2007 à 22:59:12    

Bonjour, je suis en train de concevoire un site d'e-commerce pour un projet tutoré. Mon php est moyen et j'ai un "doublon" d'affichage dan sune boucle foreach
 
ajoutcommande.php

Code :
  1. <?
  2. session_start() ;
  3. if (isset($_SESSION['panier'])&&count($_SESSION['panier'])>0){
  4. $tableau=$_SESSION['panier'];
  5.    foreach ($tableau as $cle=>$valeur) {
  6.    print_r($valeur);
  7.    echo "---1er foreach<br>";
  8.   foreach ($valeur as $cle=>$valeur) {
  9.    print_r($valeur);
  10.    echo "---2eme foreach<br>";
  11.    ////////////////////////Quantité panier///////////////////////////////////////
  12.    for ($i=0; $i < count($_SESSION['panier']); $i++) {
  13.     if ($_SESSION['panier'][$i]['id'] == $valeur) {
  14.        $qteSQL=$_SESSION['panier'][$i]['quantite'];
  15.     }
  16.    }
  17.    /////////////////////////////////////////////////////////////////////////////
  18.    $compte=substr($_COOKIE["HTTP06LOGIN08"],65,20);
  19.    $dat=date("Y-m-d" );
  20.    $sql = "INSERT  INTO commande (id_client, id_produit, quantite, date) VALUES ('$compte', '$valeur', '$qteSQL', '$dat')";
  21.    mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
  22.   }
  23.  }
  24. //header('Location: ../panier.html');
  25. }
  26. else {
  27.                  //header('Location: ../panier.html');
  28.          }
  29. ?>


 
affichage :
Array ( [id] => 28 [quantite] => 2 ) ---1er foreach
28---2eme foreach
2---2eme foreach         ----------------------------------cette ligne ne devrai pas exister
Array ( [id] => 31 [quantite] => 2 ) ---1er foreach
31---2eme foreach
2---2eme foreach         ----------------------------------cette ligne ne devrai pas exister
 
merci d'avance


Message édité par mule_panda le 24-03-2007 à 22:59:27
Reply

Marsh Posté le 24-03-2007 à 22:59:12   

Reply

Marsh Posté le 24-03-2007 à 23:07:59    

Ah bah si, elle devrait exister, c'est le principe même du foreach que d'exécuter le contenu de la boucle autant de fois qu'il y a d'élément dans le tableau que tu parcours.
 
Là, ton tableau contient 2 éléments (id et quantite), tu as donc deux lignes, c'est logique. Et si ce n'est pas le résultat que tu veux, je peux t'assurer que PHP n'y est pour rien :D

Reply

Marsh Posté le 24-03-2007 à 23:16:31    

a ouiiiiiiiiii, merci j'avai oublié ceci j'ai id plus quantité. Merci je bosse de trop et je m'embrouille  :jap:

Reply

Sujets relatifs:

Leave a Replay

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