J'ai réussi à générer un menu stocké dans ma BDD

avec le fonction suivante:*

<?php

function affiche_menu($menu, $parent = -1, $niveau = 0)

{

$affiche = false;

foreach($menu as $element_menu)

{

if($element_menu['parent_menu'] == $parent)

{

if(! $affiche) 

{

echo "\n<ul class='niveau_$niveau'>\n";

$affiche = true;

}

echo "\t<li class='menu_item'>\n\t\t<a href='index.php?menu=".$element_menu['lien']."'>";

echo $element_menu['designation']."</a>\n";

affiche_menu($menu, $element_menu['menu_id'], $niveau+1);

echo "\t</li>\n";

}

}

if($affiche)

echo "</ul>\n";

}

$menu_bdd = new BDD();

if(isset($charset))

$menu_bdd->requete("SET NAMES '$charset';");

$menu_bdd->requete("SELECT * FROM menu  WHERE langue = '$langue' ");

$menu = $menu_bdd->retourne_tableau();

echo "<nav>\n";

affiche_menu($menu);

echo "</nav>\n";

?>

Mon problème c'est comment générer les sous menus ci qui suppose de les stokker dans la DBB comme le menu à mon avis ? avec une nouvelle fonction?

 J'ai éssaiyé mais en vain.Merci .

Modifié par saikou (27 Apr 2013 - 11:35)
Hello,
Ta fonction affiche-menu gère déjà les sous menu a priori (par la magie de la récursivité). Après il faut voir ce qu'il y a dans ta bdd et ce que fait ta méthode retourne_tableau, mais vu la fonction que tu montre, tu dois avoir dans ton tableau (et donc dans ta BDD) pour chaque élément d'un sous menu l'id de son menu parent (id_menu) dans le champ id_parent.
Modifié par BlueScreenJunky (28 Feb 2013 - 07:44)