cs_christobal
Messages postés208Date d'inscriptionjeudi 3 octobre 2002StatutMembreDernière intervention31 mars 2011
-
6 déc. 2008 à 19:03
willeraser
Messages postés55Date d'inscriptionmercredi 15 octobre 2003StatutMembreDernière intervention 6 mai 2009
-
8 déc. 2008 à 00:54
Bonjour,
J'aimerais afficher mon site de maniere dynamique, mais il semblerait qui faut utiliser 2 boucles imbriquées.
pb je ne sais pas comment faire.
Voici un bout du code mais sans les boucles ;)
/* LA BOUCLE DES MENUS /*
<li>[# ' . $row_menu2['menu'] . ']
/* LA BOUCLE DES SOUS MENUS /*
<li>[' . $row_menu2['url'] . '.html ' . $row_menu2['s_menu'] . ']</li>
/* FIN BOUCLE DES SOUS MENUS /*
</li>
/* FIN BOUCLE DES MENUS /*
Merci de votre aide
A voir également:
"Php version 4.4.3" "build date" "server api" "php variables" ????
cs_christobal
Messages postés208Date d'inscriptionjeudi 3 octobre 2002StatutMembreDernière intervention31 mars 2011 6 déc. 2008 à 19:29
A flute avec safari le code html de mon poste n'a pas été pris en compte.
je recommance sous IE.
info complémentaire : le pb et que j'ai besoin d'une boucle pour afficher les menus et une boucle dans la boucle pour afficher dans chq menu les sous menu correspondant.
/* LA BOUCLE DES MENUS /*
<li> [# ' . $row_menu2['menu'] . ']
/* LA BOUCLE DES SOUS MENUS /*
<li> [' . $row_menu2['url'] . '.html ' . $row_menu2['s_menu'] . '] </li>
/* FIN DE LA BOUCLE DES SOUS MENUS /*
willeraser
Messages postés55Date d'inscriptionmercredi 15 octobre 2003StatutMembreDernière intervention 6 mai 2009 8 déc. 2008 à 00:54
Si tu veux que ton site soit dynamique, je présume que tu extrais les données de ton menu depuis une base de données (MySQL ?).
Même si tu essayes de tuer une mouche au missile, je vais quand même t'expliquer.
Tu dois avoir 1 seule table mysql contenant tout tes menus
chaque menu doit pouvoir avoir un nombre infini de sous menus (conceptuellement c'est beau, même si c'est pas forcément ce dont tu as besoin :p)
Donc un tuple de menu se compose d'un ID, d'un LIBELLE, d'un LIEN et d'un PARENT_ID.
Le parent id contiendra l'id du menu qui est hiérarchiquement supérieur au sous menu.
Apres, pour la requete SQL, je te laisse la trouver, il est trop tard pour moi ^^
Sinon, la méthode pourrie mais plus simple consiste à faire 2 tables. menu et sous_menu
La table menu est liée a celle du sous menu. Par transitivité, tu vas pouvoir connaitre tous les sous menus appartenants au menu en cours.
Le principe de tes boucles imbriquées est :
Je parcours séquentiellement la catégorie la plus large (les menus)
Pour chaque menu ( 1er tour de boucle) je regarde s'il existe un/des sous-menus avec comme parent_id l'id du menu le plus large.
Si oui, alors je crée une 2ème boucle qui va sequentiellement tous les parcourir.
Admettons qu'il y ai 3 sous menu pour le menu1, je vais faire 3 tours de boucle, car au 3eme, mon while ne sera plus vrai, je sors de ma boucle, ce qui me fait passer à la 2eme itération de ma grande boucle, c'est à dire au 2ème menu.
Ceci est vrai pour 2 niveaux de menu (menu+sousmenu). Si tu veux davantage, tu remarqueras le motif de récursivité ;)