通过PHP使用mysql进行递归树遍历

我正在为客户创建一份调查问卷,要求将问题按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      

我在网站上发现了一个类似的问题但是当我尝试它的解决方案时,我在infinetly上得到以下信息:

码:

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 '

输出

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

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

最佳答案
这是递归的:

function printChildQuestions($parentid) {
  $sql="SELECT * FROM pB_test WHERE parentID=$parentid";
  $result=MysqL_query($sql);
  $i=0;
  while (true) {
    $row=MysqL_fetch_array($result);
    if (!$row) break;
    if ($i==0) echo "

相关文章

昨天的考试过程中,有个考点的服务器蓝屏重启后发现Mysql启动不了(5.6.45 x32版本,使用innoDB),重装后...
整数类型 标准 SQL 中支持 INTEGER 和 SMALLINT 这两种类型,MySQL 数据库除了支持这两种类型以外,还扩...
一条 SQL 查询语句结构如下: SELECT DISTINCT <select_list> FROM <left_table&...
数据备份 1. 备份数据库 使用 mysqldump 命令可以将数据库中的数据备份成一个文本文件,表的结构和数据...
概述 在实际工作中,在关系数据库(MySQL、PostgreSQL)的单表数据量上亿后,往往会出现查询和分析变慢...
概述 触发器是 MySQL 的数据库对象之一,不需要程序调用或手工启动,而是由事件来触发、激活,从而实现...