【发布时间】:2018-12-09 07:03:18
【问题描述】:
我有以下数据结构:
|--------|----------|-----------|------------|-----------------|
| NAV_Id | NAV_Name | NAV_Order | NAV_Parent | NAV_ParentOrder |
|--------|----------|-----------|------------|-----------------|
| 1 | Home | 1 | no | 0 |
| 2 | Fruits | 2 | yes | 0 |
| 3 | Apples | 2 | no | 1 |
| 4 | Pears | 2 | no | 2 |
|--------|----------|-----------|------------|-----------------|
-
NAV_Order是我菜单中的导航位置。 -
NAV_Parent表示该项目是否有子菜单。 -
NAV_ParentOrder是子菜单项的位置顺序。
我想要的输出如下:
<ol class="dd-list">
<li class="dd-item" data-id="1">
<div class="dd-handle">Home</div>
</li>
<li class="dd-item" data-id="2">
<div class="dd-handle">Fruits</div>
<ol class="dd-list">
<li class="dd-item" data-id="3"><div class="dd-handle">Apples</div></li>
<li class="dd-item" data-id="4"><div class="dd-handle">Pears</div></li>
</ol>
</li>
</ol>
请问如何从我的数据库结构中反映此输出?
这是我实际尝试的:
$query = $pdo->prepare('SELECT * FROM ___Navigation');
$query->execute();
while ($fetch = $query->fetch(PDO::FETCH_ASSOC)) {
if(NAV_Parent == 0) {
echo '<li class="dd-item" data-id="'.$fetch[NAV_Id].'"><div class="dd-handle">'.$fetch[NAV_Name].'</div></li>';
}
else {
echo '<li class="dd-item" data-id="'.$fetch[NAV_Id].'"><div class="dd-handle">'.$fetch[NAV_Name].'</div></li>';
foreach($fetch[NAV_ParentOrder]) {
echo '<li class="dd-item" data-id="'.$fetch[NAV_Id].'"><div class="dd-handle">'.$fetch[NAV_Name].'</div></li>';
}
}
}
但我完全迷路了......
【问题讨论】:
标签: php