@arsenaljek

Как сделать многоуровневое меню на PHP?

Подскажите как правильно организовать многоуровневое меню? Пытаюсь сделать меню с 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>
  • Вопрос задан
  • 271 просмотр
Пригласить эксперта
Ответы на вопрос 1
@topalek
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы