Bonjour,
je cherche à me perfectionner en php avant de me lancer dans la programmation objet.
J'ai suivi le très bon tuto "Débutant : Créer un portfolio de A à Z" en php procédural mais pleinement adapté aux nouvelles versions de php.
Je suis en train de me faire un petit cms pour mes clients et pour des associations sur cette base mais je rencontre un petit souci.
Je souhaite afficher des menus dynamiques avec sous menus mais je ne parviens pas à filtrer mes sous menus.
le resultat serait classiquement :
Menu 1
Menu 2
Menu 2.1
Menu 2.2
Menu 3
Menu 3.1
Voici mon code :
<?php
$auth = 0;
include 'lib/includes.php';
include 'lib/image.php';
$select = $db->query("SELECT id, parent_id, nom FROM menu WHERE parent_id='0' ORDER BY nom ASC");
$menus = $select->fetchAll();
$select = $db->query("SELECT * FROM menu WHERE parent_id!='0' ORDER BY nom ASC");
$sousmenus = $select->fetchAll();
$title = "Bienvenue sur mon cms";
include 'modeles/header.php';
?>
<div class="row">
<div class="col-sm-12 menu">
<ul>
<?php foreach ($menus as $m => $menu): ?>
<li>
<a href="#">
<?= $menu['nom']; ?>
</a>
<ul class="sousmenu">
<?php foreach ($sousmenus as $sm => $sousmenu): ?>
<li>
<a href="#">
<?= $sousmenu['nom']; ?>
</a>
</li>
<?php endforeach ?>
</ul>
</li>
<?php endforeach ?>
</ul>
</div>
</div>
<?php include 'modeles/footer.php'; ?>
Le souci est que ce code ne m'affiche que ceci :
Menu 1
Menu 2.1
Menu 2.2
Menu 3.1
Menu 2
Menu 2.1
Menu 2.2
Menu 3.1
Menu 3
Menu 2.1
Menu 2.2
Menu 3.1
Comme vous pouvez le voir, je ne filtre pas les sous menus et donc cela ne correspond pas au contenu réel de la base puisqu'il m'affiche tous les sous-menus existants sous chaque menu principal.
Je vous remercie par avance pour votre aide.