php - 反向面包屑问题

标签 php mysql

我的导航表看起来像这样。 enter image description here

它基于父<->子方案。

我正在使用以下代码生成面包屑。

function makeBreadcrumb($current, $lang, $db){
      $q = $db->query("SELECT id, parent, $lang AS name FROM nav WHERE id = '$current'");
      $row=$q->fetch_object();
      echo "<li>";
            echo '<a href="?id=' . $row->id . '">' . $row->name . '</a>';
            echo "</li>\n\n";
     if($row->parent) makeBreadcrumb($row->parent, $lang, $db);
    }

但是得到反向面包屑:它显示 child>parent 而不是 parent>child .如何解决?

最佳答案

解决方案非常简单...您可以简单地将递归调用放在 echo 语句之前,如下所示:

function makeBreadcrumb($current, $lang, $db){
      $q = $db->query("SELECT id, parent, $lang AS name FROM nav WHERE id = '$current'");
      $row=$q->fetch_object();
     if($row->parent) makeBreadcrumb($row->parent, $lang, $db);
      echo "<li>";
            echo '<a href="?id=' . $row->id . '">' . $row->name . '</a>';
            echo "</li>\n\n";

    }

但我建议您不要对树中的每个节点进行查询。它可能非常耗费资源。

关于php - 反向面包屑问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7540212/

相关文章:

php - 在 PHP 中查询 MySQL 时间戳

mysql - 检查目标 DBMS 连接期间出错

mysql - SQL查询以检查名称是否以元音开头和结尾

php - 读取 HTTP 请求 header 以决定是否继续

php - php如何限制用户存储空间

php - 从 Google Chart 时间线项目创建链接

php - 如果另一个属性不为空,Symfony 验证一个属性

php - 我被困在 mysql 中的一个查询上

php - Azure 网站中的 PDO 语句与应用程序内的 MySQL

php - 验证 JSON 是否在 PHP 上具有确定的结构