Я хочу отобразить многоуровневое меню, основанное на базе данных, и ниже – это то, что я пробовал до сих пор, но я не получаю результат по своему желанию. Может ли кто-нибудь помочь мне исправить это. вывод, который я получаю, является только основным меню с родительским идентификатором как 0, но не элементами подменю.
<?php include('system/connection.php'); ?> <?php //select all rows from the main_menu table $q = "SELECT * FROM catelogue WHERE cat_visibility = '1'"; $r = mysqli_query($dbc, $q); echo "<ul class='dropdown'>"; while ($rows = mysqli_fetch_assoc($r)) { if ($rows['cat_parentid'] == 0) { echo "<li><a href='#'>" . $rows['cat_name'] . "</a>"; echo "<ul>"; foreach ($rows as $item) { if ($item['cat_parentid'] == $rows['cat_id']) { echo "<li><a href='#'>" . $item['cat_name'] . "</a>"; echo "</li>"; } } echo "</ul>"; echo "</li>"; } } echo "</ul>"; ?>
Моя структура базы данных
----------------------------------------- | cat_id | cat_name | cat_parentid | ----------------------------------------- | 1 | Home | 0 | | 2 | About | 0 | | 3 | Contact | 0 | | 4 | History | 2 | | 5 | Services | 2 | -----------------------------------------
Желаемый результат Я хочу:
<ul class="dropdown"> <li><a href='#'>Home</a></li> <li><a href='#'>About</a> <ul> <li><a href='#'>History</a></li> <li><a href='#'>Services</a></li> </ul> </li> <li><a href='#'>Contact</a></li> </ul>