Menu à niveaux multiples simple en php/mysql

Fermé
aka_fx - 14 déc. 2008 à 13:54
mouf13 Messages postés 142 Date d'inscription mardi 20 juin 2006 Statut Membre Dernière intervention 22 février 2011 - 16 déc. 2008 à 23:16
Bonjour,

Je tiens tout d'abord à confirmer que j'ai fais de multiples recherches avant de venir poser cette question.
Je voudrais réaliser un menu en HTML/PHP/MySQL avec autant de niveaux que besoin.

Autrement dis, je peux (et voudrais ;) ) me retrouver avec un menu comme celui-ci :

Menu
- sous menu
- sous-menu
Menu
Menu
Menu
- sous-menu
-- sous-sous-menu
-- sous-sous-menu
--- sous-sous-sous-menu
Menu
etc...

Le tout avec un nombre de niveaux infini.

J'ai beau chercher (et je l'avoue, je ne suis pas développeur d'origine, donc mes connaissances en PHP restent celles d'un utilisateur qui l'utilise de manière basic) je ne trouve rien, et je ne voie pas comme utiliser WHILE, DO-WHILE ou foreach afin de générer cela.

Pour information, ma base de données à ce niveau est très simple :

Pour chaque niveau : une id (id), un titre (title), un niveau (level) qui reprend l'id du parent si c'est un sous-menu et ainsi de suite

pour exemple :

titre du Menu A (id=1 / level =)

titre du Menu B (id=2 / level =)
- titre du sous-menu du menu B (id=6 / level =2)
- titre du sous-menu du menu B (id=7 / level =2)
-- titre du sous-sous-menu du menu B (id=8 / level =6)
--- titre du sous-sous-sous-menu du menu B (id=9 / level =7)

titre du Menu C (id=3 / level =)

titre du Menu D (id=4 / level =)

titre du Menu E (id=5 / level =)

Si quelqu'un à une solution pour créer une sorte de boucle, qui controle qu'une entrée dans la bases qui lui sont lié et à chaque fois me généré un code (je pense que ce sera du <ul><li>) je suis preneur...
A voir également:

1 réponse

mouf13 Messages postés 142 Date d'inscription mardi 20 juin 2006 Statut Membre Dernière intervention 22 février 2011 17
16 déc. 2008 à 23:16
voici ce que je ferais au niveau structure SQL :
1 table menu : Id, Id_pere, libelle
Ton Id en auto incremente et l'id du menu parent dans id_pere.
Donc :
Si il y a un id_pere, on est dans un sous menu -> traitement xhtml en fonction.
Tu seras ainsi illimité
0