recursivité et menu multiniveaux - PHP - Programmation
Marsh Posté le 03-08-2004 à 12:41:51
tu as plusieurs solution :
tu utilise un tableau dont chaque element est un tableau : array(node_name,node_parent)
ainsi , tu accede a un tableau de tableau
dans ce cas il te faudra faire une fonction du genre :
Code :
|
Marsh Posté le 03-08-2004 à 17:27:13
Si tu ne veux pas t'embéter avec de la récursivité : http://sql.developpez.com/arborescence/ . Assez complexe quand même.
Sinon en récursif (mais peu performant => à mettre en cache à la limite)
Code :
|
C'est pas testé hein
je m'aperçois que je ne comprens pas le champ node_name dans ta table ? C'est quoi, le nom du menu ?
Marsh Posté le 03-08-2004 à 17:48:03
Merci pascal_ pour ce lien, je connaissais pas cette methode et c'est sacrément efficace et ingénieux
Marsh Posté le 03-08-2004 à 10:45:21
Bonjour,
Soit un un arbre :
node_id node_name node_parent
0 Root -1
2 2_2 0
3 3_3 2
4 4_4 0
5 5_5 4
6 6_6 0
7 7_7 6
8 8_8 0
9 9_9 8
10 10_10 0
11 11_11 10
12 12_12 0
13 13_13 12
Je voudrais parcourir cet arbre pour afficher des lignes javascripts et
ainsi contruire un menu multiniveaux.
Il faudrait sortir des lignes du genre :
Menu1_1 = new Array(''..'''.......) (1er element du 1er niveau)
Menu1_2 = new Array(''..'''.......)
Menu1_3 = new Array(''..'''.......)
Menu2_1 = new Array(''..'''.......)
Menu2_1_1 = new Array(''..'''.......)
Menu2_1_2 = new Array(''..'''.......) (2eme element du 1er element du 2eme
niveau)
Menu2_2_1 = new Array(''..'''.......)
Menu2_2_2 = new Array(''..'''.......) (2eme element du 2eme element du 2eme
niveau)
....
Et la je coince je ne sais pas rédiger de fonction récursive et je vois pas
comment faire pour écrire une sortie comme celle ci.
Vous avez surement deja fait ca et ca serait sympa de m'aiguiller voire de
me donner un petit bout de code.
Merci de m'éclairer.
Cordialement.
Jérôme Rautureau
Webmaster - Développeur
La Rochelle-Rochefort : territoire interactif
contact@larochellerochefort.com
Qui fait quoi sur La Rochelle - Rochefort : www.larochellerochefort.com