我正在为项目构建动态导航,我想只显示拥有城市parent_id
的国家/地区,并且只显示城市的一个实例(例如:曼谷),如果不止一个。< / p>
注意:中国没有parent_id
所以这是不显示的。
不确定是否可以使用此设置,但我们继续。
以下是包含四列且id
为AUTO_INCREMENT
id | menu | parent_id | type
----|-----------|-----------|------
1 | China | 0 | null
2 | Myanmar | 0 | null
3 | Laos | 0 | null
4 | Thailand | 0 | null
5 | Yangon | 2 | Tour
6 | Champasak | 3 | Tour
7 | Pakse | 3 | Tour
8 | Bangkok | 4 | Tour
9 | Bangkok | 4 | Tour
10 | Bangkok | 4 | Tour
这是HTML的SNIPPET,其中class
被实例化
<li class="dropdown">
<a class="dropdown-toggle" href="#">TOURS</a>
<?php
$menu = new DynamicNavigation();
$menu->navigationTourMenu();
?>
</li>
以下是class
class DynamicNavigation {
public function navigationTourMenu() {
$sql = DB::getInstance()->query('SELECT * FROM navigation');
if($sql->count()) {
$rows = $sql->results();
}
$items = $rows;
$id = '';
echo '<ul class="dropdown-menu">';
foreach($items as $item) {
if($item->parent_id == 0) {
echo '<li class="dropdown">';
echo '<a class="dropdown-toggle" href="#"><i class="fa fa-thumb-tack"></i> ' . $item->menu . '</a>';
$id = $item->id;
$this->navigationTourSubMenu($items, $id);
echo '</li>';
}
}
echo '</ul>';
}
public function navigationTourSubMenu($items, $id) {
echo '<ul class="dropdown-menu">';
foreach($items as $item) {
if($item->parent_id == $id && $item->type == 'Tour') {
echo '<li>';
echo '<a href="' . BASE_URL . '/search?searching=' . $item->menu . '" onClick="showProgress()"><i class="fa fa-street-view"></i> ' . $item->menu . '</a>';
$this->navigationTourSubMenu($items, $item->id);
echo '</li>';
}
}
echo '</ul>';
}
}
在此设置中是否会有query
。任何帮助都会得到很好的收到,因为我不是MySQL大师
答案 0 :(得分:0)
试试这个你自己的sql
SELECT distinct(nav.menu), nav.id, nav.parent_id, nav.type
FROM navigation nav
group by nav.menu , nav.parent_id, nav.type
order by nav.parent_id