|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Débutant
Inscription : mai 2005 Messages : 1 957 ![]() |
Bonjour,
J'ai un truc que je comprends pas. J'essaye de faire un multi array qui s'imbrique. J'espère que vous pourrez prendre le temps de lire mon code. J'ai créé un array à $poolCategories dans lequel je veux avoir mes menus de premier niveau, puis dans l'élément child, je veux avour tout ceux du deuxième niveau. Dans la première requete sql, j'ai tout mes menus de premier niveau qui s'ajoute comme si j'utilisais la fonction array_push. Par contre, pour ma seconde requete, il n'enregistre que le dernier menu du deuxième niveau. Je pourrais utiliser la fonction array_push, pour le deuxième niveau, mais j'aimerais bien comprendre pourquoi ca marche dans le premier cas (premier niveau), mais pas dans le second. Merci pour vos lumières Code :
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout! |
||
|
|
00
|
|
|
#2 |
|
Débutant
Inscription : mai 2005 Messages : 1 957 ![]() |
J'ai trouvé,
Il faut remplacé ceci Code :
$poolCategories[$i]['child'][$key2] = $val2; Code :
$poolCategories[$i]['child'][$i2][$key2] = $val2;
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout! |
|
|
00
|
|
|
#3 | |||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 728 ![]() |
Salut
Citation:
Mais à mon sens tu te compliques la tâche en faisant ça avec au total 4 boucles imbriquées alors que 2 foreach() devrait suffire, ce qui améliorerait la lisibilité/compréhension normalement. En ne prenant que l'essentiel, on devrait pouvoir faire comme ceci : Code :
Et pour faire le requête du niveau 2 selon la catégorie en court, faut exploiter : $catNiv_1['id_category'] PS : ton indentation de code est un peu bizarre, ça part à des Km, non ?
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|||
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé
![]() ![]() |
Je pense qu'il est même possible de tout récupérer en une seule passe en modifiant légèrement le SQL comme ceci :
Code :
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
||
|
00
|
|
|
#5 | ||
|
Débutant
Inscription : mai 2005 Messages : 1 957 ![]() |
Bonjour,
Je vous remercie à tous pour vos propositions. Ca ne marche que partiellement, mais je vais chercher car j'aime bien votre simplicité. J'ai une autre question de passage. J'aimerais modifier ma requete sql de maniere à n'extraire que le élément que j'ai besoin. Ca marche quand le laisse * après le SELECT mais quand je mets ca, ca ne marche plus. Je peux bien utilisé le c. et le l.? Code :
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout! |
||
|
|
00
|
|
|
#6 |
|
Débutant
Inscription : mai 2005 Messages : 1 957 ![]() |
En fait dans la proposition de runcodephp, ca marche bien au premier niveau,
mais au deuxième niveau, ca coince, il n'y a pas de 'child' dnas smon print_r du menu premier niveau. Je vais chercher et si je ne trouve pas je reviendrai apèrs plus de précision..
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout! |
|
|
00
|
|
|
#7 |
|
Débutant
Inscription : mai 2005 Messages : 1 957 ![]() |
Mince, oubliez mon avant dernier post, j'avais une faute de frappe au niveau de c.id_praent... => c.id_parent
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com