Portail PHP

Forum de discussion et d'aide au php

Vous n'êtes pas identifié.

Annonce

Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides.
FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans.
Proposez vos news : si vous avez un evenement à annoncer
le chat : venez discuter de php.
 

#16 05-04-2008 16:38:52

Asherah
Membre
Date d'inscription: 15-11-2007
Messages: 147
Site web

Re: Mémoire Session

au lieu d'afficher direct' ton tableau html dans le for , stocke ce qui t'interesse dans un truc du genre $data[] si t'as besoin et en dehors de la boucle tu pourras les récupérer.

mais d'ailleurs je comprend pas pourquoi tu t'obstine a afficher ce tableau html dans ta boucle, car apparament ton for sert essentielement a comparer les valeurs de ta sessions a celles de ta table.
donc bon, enleve ce tableau du for.
je pense que ca te causeras moins de soucis.

Hors ligne

 

#17 05-04-2008 19:07:20

nico341
Membre
Date d'inscription: 01-04-2008
Messages: 17

Re: Mémoire Session

Ya un truc que je comprend pas, mon tableau $_SESSION['panier'] il faut que je le parcours pour vérifier si un élément n'est pas égale à un du tableau qui représente les résultats de la requète sql, donc il faut que je me sers soit d'un FOR soit d'un FOREACH non??

La si j'enlève le for, il va me cocher que le dernier produits qui se trouve dans les 2 tableaux.

Hors ligne

 

#18 06-04-2008 07:23:48

Asherah
Membre
Date d'inscription: 15-11-2007
Messages: 147
Site web

Re: Mémoire Session

oui, tu parcours une premiere fois ensuite tu stocke les resultats de panier dans un autre tableau du style data[] au passage tu met un count pour connaitre le nombre d'entrées et hors de cette boucle tu recupere ton count() et tu a juste a faire $data[1], $data[2] jusqu'a la fin du count() etc...
ce qui te permet de sortir de la maudite boucle.

fait un test:

Code:

<?php

//simulation du tableau
$data[1] = 'truc';
$data[2] = 'machin';

$count = count($data);

foreach(range(0, $count) as $number) {
    $num.= $data[$number];
}

//et hopla! plus de boucle!

echo $num;
?>

Dernière modification par Asherah (06-04-2008 07:26:48)

Hors ligne

 

#19 07-04-2008 07:26:59

nico341
Membre
Date d'inscription: 01-04-2008
Messages: 17

Re: Mémoire Session

Tout en haut de ma page j'ai mis ce code:

Code:

for($i=0;$i<count($_SESSION['panier']);$i++) {
              $data= array('nom'=>$_SESSION['panier'][$i]['nom'],
                                    'couleur'=>$_SESSION['panier'][$i]['couleur'],
                                    'taille'=>$_SESSION['panier'][$i]['taille'],
                                    'quantite'=>$_SESSION['panier'][$i]['quantite']);  
                                    
              $count = count($data);
}
foreach(range(0, $count) as $number) {
                $num.= $data[$number];
              }

              echo $num;

Peux tu me dire si se que j'ai mis est juste?
J'en doute car je n'ai pas de résultat au echo... sad

J'ai également pas très bien compris ta solution, comment je vais pouvoir faire ma comparaison,
si par exemple nom_du _produit_dans_$num = $data['products_name'] ??
$num est un tableau??

Hors ligne

 

#20 07-04-2008 08:53:46

Asherah
Membre
Date d'inscription: 15-11-2007
Messages: 147
Site web

Re: Mémoire Session

pour faire ta comparaison tu peut regarder si strpos te renvoi quelque chose ou pas de $num .
mais vu que tu stocke dans un array du coup j voit pas l'interet du foreach
tu a juste a faire un echo $data ou $data['taille'] (par exemple).

Hors ligne

 

#21 07-04-2008 09:05:52

nico341
Membre
Date d'inscription: 01-04-2008
Messages: 17

Re: Mémoire Session

Oui mais dans ces cas la je me retrouve à devoir faire une boucle pour voir le contenu de data[] si j'enleve le foreach non?

Pour ta solution je ne dois pas metre dans un nouveau tableau?

Hors ligne

 

#22 07-04-2008 09:40:17

Asherah
Membre
Date d'inscription: 15-11-2007
Messages: 147
Site web

Re: Mémoire Session

pardon, j'avais omis le $i dans tes tableaux.

essaye en faisant ton count en dehors du for.

Code:

for($i=0;$i<count($_SESSION['panier']);$i++) {
              $data= array('nom'=>$_SESSION['panier'][$i]['nom'],
                                    'couleur'=>$_SESSION['panier'][$i]['couleur'],
                                    'taille'=>$_SESSION['panier'][$i]['taille'],
                                    'quantite'=>$_SESSION['panier'][$i]['quantite']);  
                                    
}

$count = count($data);

foreach(range(0, $count) as $number) {
                $num.= $data[$number];
              }

              echo $num;

Hors ligne

 

#23 07-04-2008 09:49:08

nico341
Membre
Date d'inscription: 01-04-2008
Messages: 17

Re: Mémoire Session

non, $num m'affiche toujours rien sad

Hors ligne

 

#24 07-04-2008 09:54:24

Asherah
Membre
Date d'inscription: 15-11-2007
Messages: 147
Site web

Re: Mémoire Session

qu'est ce qui se passe si tu fait un echo sur ton $count et $data entre for et foreach?

Hors ligne

 

#25 07-04-2008 10:04:07

nico341
Membre
Date d'inscription: 01-04-2008
Messages: 17

Re: Mémoire Session

Alors $data me sort Array (normal quoi), et $count me sort le résultat (pour mon essai 4).

Si je fais un print_r($data), j'ai bien les colonnes de mon tableau avec un produit

Dernière modification par nico341 (07-04-2008 10:22:19)

Hors ligne

 

#26 07-04-2008 10:39:49

Asherah
Membre
Date d'inscription: 15-11-2007
Messages: 147
Site web

Re: Mémoire Session

j'ai trouvé

Code:

for($i=0;$i<count($_SESSION['panier']);$i++) {
              $data[$i]= array('nom'=>$_SESSION['panier'][$i]['nom'],
                                    'couleur'=>$_SESSION['panier'][$i]['couleur'],
                                    'taille'=>$_SESSION['panier'][$i]['taille'],
                                    'quantite'=>$_SESSION['panier'][$i]['quantite']);  
                                    
}

$count = count($data);

foreach(range(0, $count) as $number) {
                $num.= $data[$number];
              }

              echo $num;

Hors ligne

 

#27 07-04-2008 10:45:57

nico341
Membre
Date d'inscription: 01-04-2008
Messages: 17

Re: Mémoire Session

Non pas d'affichage du tout page blanche.
Par contre j'ai essayer $data[]= array(...
la j'ai bien toutes mes données du tableau déjà, mais $num ne reponds toujours pas

Hors ligne

 

#28 08-04-2008 09:20:21

nico341
Membre
Date d'inscription: 01-04-2008
Messages: 17

Re: Mémoire Session

Asherah, ce n'ai pas dans cette partie qu'il y a un souci??

Code:

range(0, $count) as $number

Hors ligne

 

#29 08-04-2008 09:37:38

Asherah
Membre
Date d'inscription: 15-11-2007
Messages: 147
Site web

Re: Mémoire Session

non, le souci vient de la profondeur et de la multitude de tableaux, je sait pas trop comment reussir a tout dérouler.
j'ai plancher un peu sur la question hier soir et je doit avouer que j'ai prier pour que quelqu'un d'un peu plus calé reponde sur ce post.. car là je planche un peu.

Hors ligne

 

#30 08-04-2008 11:07:55

nico341
Membre
Date d'inscription: 01-04-2008
Messages: 17

Re: Mémoire Session

Ok je te remerci de t'investire autant pour essayer de m'aider, j'espère que j'arriverai à trouver une solution.
Dommage qu'il n'y est pas quelqu'un de plus calé que toi en php (dit-il en esperant qu'une personne lui prouve le contraire wink )

Hors ligne