Я показываю категории в меню.Некоторые категории имеют подкатегории.
функция для получения родительских категорий
function get_parent_category(){
$query="select * from blog_categories where parent_id=0
ORDER BY
CASE id
WHEN '2' THEN 1
WHEN '1' THEN 2
WHEN '3' THEN 3
ELSE id
END";
$rows=array();
$result=$this->query($query);
while($row=$this->fetch_array($result)){
$row['url']=$this->get_cat_url($row);
$rows[]=$row;
}
return $rows;
}
Функция для подкатегорий
function get_child_category(){
$query="select * from blog_categories where parent_id!=0";
$rows=array();
$result=$this->query($query);
while($row=$this->fetch_array($result)){
$row['url']=$this->get_cat_url($row);
$rows[]=$row;
}
return $rows;
}
Показывается на странице следующим образом:
<ul class="nav navbar-nav">
<li><a href="<?php echo BASE_URL ?>">Home</a></li>
<?php
foreach($this->parent_category as $cat){
foreach($this->child_category as $child_cat){
if($cat['id']==$child_cat['parent_id']){
?>
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#"><?php echo $cat['name'];?>
<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#"><?php echo $child_cat['name']?></a></li>
</ul>
</li>
<?php
}elseif($cat['parent_id']==0){
?>
<li><a href="<?php echo $cat['url']?>"><span><?php echo $cat['name'];?></span></a></li>
<?php
}
?>
<?php }}?>
Вывод и проблема
![enter image description here](https://i.stack.imgur.com/dqcBT.png)
Круг основной категории красного цвета см , который имеетдве подкатегории.показывает два раза для первой в выпадающей одной подкатегории и для второго раза отображается вторая подкатегория.
структура БД
![enter image description here](https://i.stack.imgur.com/02zTW.png)
Что я хочу:
Я хочу показать каждую подкатегорию в каждой родительской категории без повторов, как я могу этого добиться?