首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用While()从数据库构建2级导航

使用While()从数据库构建2级导航
EN

Stack Overflow用户
提问于 2018-11-19 19:12:15
回答 1查看 31关注 0票数 0

我正在尝试使用数据库中存储的页面来构建导航栏。对于第一个级别来说,没有什么困难,但是当页面必须被列为同一个父级的子级时,就变得更加棘手了。这是我的密码:

代码语言:javascript
复制
$dropdown = array(); 
while ($pages = mysqli_fetch_assoc($rq_page)) {
  $url_pg = url_rewrite('page-' . $pages["id"] . '-' . $pages["intitule"] . '');

  // Creating a dropdown button
  if($pages["dropdown"] == "oui" && $pages["parent"] == 0) {
    echo '<li class="nav-item dropdown">';
        echo '<a class="nav-link dropdown-toggle" data-toggle="dropdown" id="Preview" href="#" role="button" aria-haspopup="true" aria-expanded="false">';
        echo $pages["intitule"];
        echo '</a>';
        echo '<div class="dropdown-menu" aria-labelledby="Preview">';
        foreach($dropdown as $variable) {
          echo '<a class="dropdown-item" href="#">' . $variable . '</a>';
          }
        echo '</div>';
    echo '</li>';
  }
  // If single page = no dropdown
  else if($pages["dropdown"] == "non" && $pages["parent"] == 0) {
    echo '<li class="nav-item">';
      echo '<a class="nav-link" href="' . $url_pg . '">' . $pages["intitule"] . '</a>';
    echo '</li>';
  }
  // If content is a dropdown item
  else {
    $dropdown[] = '"' . $pages["parent"] . '" => "' . $pages["intitule"] . '"';
  }
}

所以。首先,我获得数据库内容。然后,我创建了一个数组()来列出每个具有$pages“父”等于母亲ID的内容。while()处理3种类型的内容:单页、下拉页面和下拉按钮的项。

我尝试了许多PHP方法。第一个级别显示正确,但是当将$dropdown数组用于while()循环时,它仍然是空的。当在while()之外打印时,它将显示我通过of {}传递的内容。

您能在这段代码中看到错误吗?创建导航的最佳方法是什么?如果我能提供更多的信息,请告诉我。谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-19 20:08:24

您的代码无法工作,因为当它找到一个具有$pages["dropdown"] == "oui"的页面时,$dropdown数组总是空的。

它总是空的原因是因为在所有下拉“按钮”页面之后,查询返回下拉"item“页面。如果将var_dump($dropdown)添加到循环中的几个战略位置,您将亲自看到它。

一个快速的hacky修复方法是更改查询的顺序,以便首先返回下拉"items“(使用parent>0):

代码语言:javascript
复制
SELECT id, intitule, parent, dropdown FROM db_page ORDER BY parent DESC

这将使每个下拉“按钮”包括每一个下拉“项目”,包括那些不相关的。排序顺序将需要进一步修改,以使您当前的方法按您预期的方式工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53381156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档