0
我正在爲一個項目建立一個動態導航,我想只顯示有城市的國家parent_id
,也只顯示城市的一個實例(例如:曼谷)如果不止一個。MySQL,PDO中的動態導航菜單顯示一個實例
注意:中國有沒有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
這就是class
實例化
<li class="dropdown">
<a class="dropdown-toggle" href="#">TOURS</a>
<?php
$menu = new DynamicNavigation();
$menu->navigationTourMenu();
?>
</li>
這裏的HTML代碼段是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
這將在此設置中執行此操作。任何幫助將greatfully接受,因爲我不是一個MySQL的大師
我認爲這個'query'只需要走出國門,而不是給我的單個實例城市。但我會給它去 – John
嗨@giuseppe straziota我已經嘗試過你的'查詢',但它做我說的。問題在於'navigationTourSubMenu($ items,$ id)''foreach'循環正在帶回所有的城市。我想要的只是顯示一個城市的一個實例,即使這個城市是同一個城市的幾個實例。這是否有任何意義:-( – John
使用此http://sqlfiddle.com/#!9/dd6fab/8我已修改查詢,以顯示只有一個國家的實例 –