【发布时间】:2012-06-15 04:16:38
【问题描述】:
我正在为一位客户创建一份问卷,该问卷要求按 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 不支持递归
JOINs,这是您真正需要的,但是如果您知道您只有三个级别并且永远只有三个级别,您可以将表连接到自己三倍
标签: php mysql loops recursion traversal