php - 从一个 mysql_query 递归打印面包屑

标签 php mysql recursion breadcrumbs

我在 MySQL 中保存了一个多维菜单。表格看起来像:

id name parent_id

table 很大。我不想运行数百个 mysql_query() 所以我从这个开始:

$result = mysql_query("SELECT * FROM test");
$arrs = array();

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $arrs[] = $row;
}

function build_tree($arrs, $parent_id=0, $level=0) {
    foreach ($arrs as $arr) {
        if ($arr['parent_id'] == $parent_id) {
            echo str_repeat("-", $level)." ".$arr['name']."<br />";
            build_tree($arrs, $arr['id'], $level+1);
        }
    }
}

build_tree($arrs);

这工作得很好,但我如何修改它以打印每个帖子的所有parent_ids?几乎就像面包屑一样。

最佳答案

您可以传入一组parent_id,而不是仅传入一个parent_id。您可以在递归调用之前将当前的parent_id附加到该数组中,并在递归调用之后将其删除。

关于php - 从一个 mysql_query 递归打印面包屑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17865891/

相关文章:

php - 如何访问 XAMPP 7.0.9 安全页面?

javascript - JQuery/AJAX 无法从 PHP 文件获取响应

php - JQuery - 复选框未打开

mysql用if语句连接三个表

javascript - 导出函数需要设置为纯函数

php - MySQL 按 (Varchar) 时间选择

mysql - 在 SQL 中将行转换为列

python - 如何使用 python 将 utf-8 字符正确插入 MySQL 表

java - 为什么我的递归不断抛出 StackOverflow 错误?

c - 当我尝试使用二分搜索递归地计算数组中某个数字的出现次数时,为什么此代码会返回段错误?