Подскажите как правильно организовать многоуровневое меню? Пытаюсь сделать меню с 3 уровнями
Я попробовал так, но 3 запроса, очеееень долго выполняются. Как сделать, чтобы большое меню грузилось быстро?
<nav id="sidebar" class="sidebar">
<div class="sidebar-content ">
<a class="sidebar-brand" href="/"><img src="/../img/template/logo.jpg" alt="" class="img-fluid"><span class="align-middle">Моя компания</span></a>
<ul class="sidebar-nav">
<li class="sidebar-header">Каталог продукции</li>
<?php
$sql = "SELECT * FROM category WHERE parent_id = 0 ORDER BY sort,id";
$result = mysqli_query($link,$sql);
while ($row = mysqli_fetch_assoc($result)) {
$url = explode('&', $_SERVER['REQUEST_URI'])[0]; ?>
<li class="sidebar-item <?=($url == "/template/view_category.php?cat=".$row['id']."") ? 'active' : ''?>">
<a href="#multi<?=$row['id']?>" data-toggle="collapse" class="sidebar-link collapsed"><i class="align-middle" data-feather="share-2"></i> <span class="align-middle"><?=$row['name']?></span></a>
<ul id="multi<?=$row['id']?>" class="sidebar-dropdown list-unstyled collapse" data-parent="#sidebar">
<?php
$sql2 = "SELECT * FROM category WHERE parent_id = '".$row['id']."' ORDER BY sort,id";
$result2 = mysqli_query($link,$sql2);
while ($row2 = mysqli_fetch_assoc($result2)) { ?>
<li class="sidebar-item">
<a href="#sub<?=$row['id']?>-<?=$row2['id']?>" data-toggle="collapse" class="sidebar-link collapsed"><?=$row2['name']?></a>
<ul id="sub<?=$row['id']?>-<?=$row2['id']?>" class="sidebar-dropdown list-unstyled collapse">
<?php
$sql3 = "SELECT * FROM category WHERE parent_id = '".$row2['id']."' ORDER BY sort,id";
$result3 = mysqli_query($link,$sql3);
while ($row3 = mysqli_fetch_assoc($result3)) { ?>
<li class="sidebar-item">
<a class="sidebar-link" href="#"><?=$row3['name']?></a>
</li>
<?php
}
?>
</ul>
</li>
<?php
}
?>
</ul>
</li>
<?php
}
?>
</ul>
</div>
</nav>