0

我的网站中有一个多级菜单和以下数据库表结构:

  • section_id
  • parent_id
  • 节名
  • section_permalink

我知道这不是最好的桌子设计:|

我想要做的是在这个菜单中获取一个部分的绝对父级(parent_id = 0 的部分)。

要检索整个树,我使用此函数:

function generate_sections_select($parent, $level, $selected) {
    global $db;

    $stmt = $db->prepare("SELECT * FROM sections WHERE parent_id = :parent_id AND deleted = '0'");
    $stmt->bindParam(':parent_id', $parent, PDO::PARAM_INT);
    $stmt->execute();

    while($row = $stmt->fetch()) {
        if ($selected == $row['section_id']) {
            echo "<option value='".$row['section_id']."' selected>".str_repeat('-', $level).' '.$row['name_ro']."</option>\n";
        } else {
            echo "<option value='".$row['section_id']."'>".str_repeat('-', $level).' '.$row['name_ro']."</option>\n";
        }

        generate_sections_select($row['section_id'], $level+1, $selected);
    }
}

例子:

  • 级别 1:主页
  • 2级:关于我们
  • 第 3 级:我们的团队

“我们的团队”或“关于我们”的绝对父级是“主页”。

4

0 回答 0