Afficher les catégories et sous-catégories dans le Menu
Bonjour, je n'arrive pas à afficher dans la barre de menu mes catégories et sous-catégories.
Ma table catégories est de la forme suivante:
id |
id_parent |
nom_fr |
nom_en |
ina=_form |
1 |
0 |
Accueil |
... |
0 |
... |
|
|
|
|
2 |
0 |
Immobilier |
... |
1 |
201 |
2 |
Vente de Maisons |
... |
1 |
202 |
2 |
Location de Maisons |
... |
1 |
203 |
2 |
Vente d Appartements |
... |
1 |
204 |
2 |
Location d Appartements |
... |
1 |
205 |
2 |
Bureaux |
... |
1 |
206 |
2 |
Terrains |
... |
1 |
... |
|
|
|
|
3 |
0 |
Véhicules |
... |
1 |
301 |
3 |
Voitures |
... |
1 |
301 |
3 |
Motos |
... |
1 |
302 |
3 |
Accessoires |
... |
1 |
... |
|
|
|
|
4 |
0 |
Multimedia |
... |
1 |
401 |
4 |
Téléphones |
... |
1 |
402 |
4 |
Télévisions |
... |
1 |
... |
|
|
|
|
5 |
0 |
... |
... |
1 |
... |
|
|
|
|
9 |
0 |
Contact |
|
0 |
La fonction getMenu:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| function getMenu( $id_parent=0 )
{
global $bdd;
$sql_lang = (!empty(($_SESSION['lang']) && in_array($_SESSION['lang'], ['fr','en','es']) ))? $_SESSION['lang'] : 'fr'; // on s'assure que la langue est correcte
$sql = "SELECT id, id_parent, nom_".$sql_lang." AS nom
FROM categories
WHERE id_parent = :id_parent
ORDER BY id
";
try{
$req = $bdd->prepare($sql);
$req->execute( array(':id_parent'=>$id_parent) );
$res = $req->fetchAll(PDO::FETCH_ASSOC);
}catch(Exception $e){
echo "Erreur dans la requête " . $sql;
$res = false;
}
return $res;
} |
Et le code pour le menu:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| <nav>
<label for="menu-mobile" class="menu-mobile">Menu</label>
<input type="checkbox" id="menu-mobile" role="button">
<?php
// 1- on récupère les menus principaaux
$menus = getMenu( 0 );
foreach($menus as $M)
{
// 2- on récupère les sous-menu de CE menu
$sous_menu = getMenu( $M['id'] );
// Si il n'y a pas de sous-menus
if( empty($sous_menu) )
{
echo " <li> <a href= "affichage.php?id_catégorie="> ".$M['nom']."</a></li>";
}
// Sinon (il y a des sous-menus)
else
{
echo " <ul ><a href= "affichage.php?id_catégorie=">'".$M['nom']."' </a></ul>";
// 3 - affichage des sous-menus
foreach($sous_menu as $SM)
{
echo " <li> <a href= "affichage.php?id_catégorie="> ".$SM['nom']."</a></li>";
}
echo " </ul>";
}
}
?> |
Si vous pouvez m'apporter une aide, merci :)