Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/11/2007, 15h08   #1
Invité de passage
 
Inscription : décembre 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 4
Points : 2
Points : 2
Par défaut Boucle for imbriqué

Bonjour à tous,

Mon problème semble assez simple mais je ne trouve pas comment m'y prendre.

Sur un site marchand, j'ai des évenements qui contiennent des catégories (comme des fiches produits où on choisit la couleur du produit par exemple).

La fiche produit contient donc un array avec ses catégories rattachées

L'ajout au caddie se fait sous forme de session avec :

- id(celui de la catégorie)
- id_event(celui du produit généraliste)
- quantite

Quand l'internaute retourne sur la page des catégories, je veux afficher les quantité déjà mises en session par l'internaute.

Je voulais donc faire une boucle du type :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
for ($i=0 ; $i < count($tab_cats) ; $i++){
  for ($i=0 ; $i < count($_SESSION['panier']) ; $i++){
     if ($_SESSION['panier'][$i]['id'] == $tab_cats[$i]['id'] ){
         /*... affiche un input pour la quantité avec value déjà rempli puisqu'ajouté au caddie précédement   */
 }
   else{
    /*...affiche moi un input pour la quantité avec le champ vide*/
   }
}
}
A priori je fais une erreur quelque part

Merci pour votre aide
orangoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2007, 15h16   #2
Rédacteur
 
Avatar de RideKick
 
Homme
Directeur technique
Inscription : septembre 2006
Messages : 5 959
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Directeur technique
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : septembre 2006
Messages : 5 959
Points : 10 889
Points : 10 889
surement ici :
Code :
1
2
 
if ($_SESSION['panier'][$i]['id'] == $tab_cats[$i]['id'] ){
a priori tu donne l'index numerique avant l'index alpha , si tu a cree ton panier ainsi :

Code :
1
2
$_SESSION['panier']['id'] = array();
$tab_cats['id'] = array();
Alors il faudrait reecrire ta ligne comme ceci :

Code :
1
2
 
if ($_SESSION['panier']['id'][$i] == $tab_cats['id'][$i] ){
Si ce n'est pas le cas , tu peux prendre ma remarque comme a ne pas conciderer

secondo en utilisant $i dans 2 boucles tu peux avoir des soucis , je te conseille d'utiliser par exemple $j pour la 2eme boucle !
__________________
Pas de questions techniques en MP please

Mon site perso
RideKick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2007, 16h19   #3
Invité de passage
 
Inscription : décembre 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 4
Points : 2
Points : 2
Oui, ceci est peut etre à la solution.

En fait, je n'ai pas de problème avec une seule catégorie ajoutée au panier mais à partir de 2.

Je m'embrouille un peu pour aujourd'hui, je repose ma tête...

J'ai renommé mes boucles car c'est vrai que c'est plus pratique en plus pour s'y retrouver.

Merci

Vinz
orangoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2007, 16h52   #4
Invité de passage
 
Inscription : décembre 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 4
Points : 2
Points : 2
C'est bon, il fat que je teste de parout mais à priori ca le fait

Code :
1
2
3
4
5
6
 
for ($j=0 ; $j < count($_SESSION['panier']) ; $j++){
  if ($_SESSION['panier'][$j]['id'] == $tab_cats[$i]['id'] ){
   $_SESSION['panier'][$j]['quantite']));
	}
}
Il me reste à générer des nombres de 1 à 10 dans un tableau(array) qui donneront :
"1" => "1",
"2" => "2",
"3" => "3",
"4" => "4" ....

Le tout ne commencant pas par 0.

Merci en tout cas pour ton aide

Vinz
orangoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h47.


 
 
 
 
Partenaires

Hébergement Web