gpt4 book ai didi

php - 通过PHP与mysql递归树遍历

转载 作者:可可西里 更新时间:2023-11-01 06:56:54 26 4
gpt4 key购买 nike

我正在为客户创建一份调查问卷,要求将问题按 3 个层次组织。我已经成功创建了 U.I.但是,在过去的 3 个小时里,我一直在尝试以所有内容都加载到正确位置的方式从数据库中提取数据。数据库是由客户组织的,所以我无法控制它:

id    description    parentId    
1 Level 1 0
2 Level 2 0
3 Level 1a 1
4 Level 1b 1
5 Level 1a1 3

我在网站上发现了一个与我的问题类似的问题,但是当我尝试它的解决方案时,我无限地重复了以下内容:

代码:

function makeList($par_id = 0) {
//your sql code here
$result = mysql_query("SELECT * FROM pB_test WHERE parentId = $par_id");
$pages = mysql_fetch_array( $result );

if (count($pages)) {
echo '<ul>';
foreach ($pages as $page) {
echo '<li>', $page['description'];
makeList($page['parentId']);
echo '</li>';
}
echo '</ul>';
}
}

makeList();

输出:

1
3
5
5
l
l
3
5
5
l
l
3
5
5
l
l
3
5
5
l
l

有谁知道如何解决这个问题以及究竟是什么问题?干杯

最佳答案

每次调用mysql服务器并获取结果是不好的

如果您有超过 100 行怎么办?或 200+

使用它只查询一次:

$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);

表格的常见例子

  id    name    parent_id

关于php - 通过PHP与mysql递归树遍历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10993998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com