如何使用PHP将嵌套的集合模型树层次结构转换为HTML列表元素?

如何使用PHP将嵌套的集合模型树层次结构转换为HTML列表元素?,php,database,sql,Php,Database,Sql,我使用嵌套集模型在数据库中存储了一个层次结构树。如何使用PHP在列表中打印此层次结构 我的数据库表: 我的树结构: 您需要递归,请尝试以下代码或php $con = mysql_connect("localhost", "root", ""); mysql_select_db("testing_db", $con); $code_id = 1; // initial of hierarchy // you can put here 1/2/3 as your initial node pri

我使用嵌套集模型在数据库中存储了一个层次结构树。如何使用PHP在
  • 列表中打印此层次结构

    我的数据库表:

    我的树结构:

    您需要递归,请尝试以下代码或php

    $con = mysql_connect("localhost", "root", "");
    mysql_select_db("testing_db", $con);
    
    $code_id = 1; // initial of hierarchy // you can put here 1/2/3 as your initial node
    print_hierarchy($code_id);
    
    function print_hierarchy($code_id)
    {
        echo '<ul>';
        $res = mysql_query("SELECT * FROM `test2` WHERE id='$code_id' LIMIT 1 ") or die(mysql_error());
        if($row = mysql_fetch_assoc($res))
        {
    
            $left = $row['lft'];
            $right = $row['rgt'];
            echo '<li>'.$row['name'];
            if($left>0 && $left!=$code_id)
            {
                print_hierarchy($left);
            }
            if($right>0 && $right!=$code_id)
            {
                print_hierarchy($right);
            }
            echo '</li>';
    
        }
        echo '</ul>';   
        return;
    }
    
    $con=mysql\u connect(“本地主机”、“根目录”、“根目录”);
    mysql_select_db(“testing_db”,$con);
    $code_id=1;//层次结构的初始节点//您可以将1/2/3放在此处作为初始节点
    打印层次结构($code\u id);
    函数打印层次结构($code\u id)
    {
    回声“
      ”; $res=mysql\u query(“从`test2`中选择*,其中id='$code\u id'限制1”)或die(mysql\u error()); 如果($row=mysql\u fetch\u assoc($res)) { $left=$row['lft']; $right=$row['rgt']; 回显“
    • ”.$row['name']; 如果($left>0&&$left!=$code\u id) { 打印层次结构(左); } 如果($right>0&&$right!=$code\u id) { 打印层次结构($right); } 回音“
    • ”; } 回声“
    ”; 返回; }

    注意:这里我使用的是不推荐使用的
    mysqli\u*
    pdo

    显示您的表结构这是经过测试的使用表和字段名在代码中尝试使用mysql\u query()函数,但不指定mysql连接,最好在代码中包含它,也许其他人不知道这一点,并且想知道为什么当我使用$code\u id=1时它不工作,我得到:
    *生物体
    ,当我使用$code\u id=2时,我得到:
    *哺乳动物
    然后缩进
    *孔雀
    当我使用$code\u id=3时,我得到:
    *人类
    然后缩进
    *鸟类
    这里是一个图表,显示了$code\u id=1/2/3的输出。这是ul li中的左树,如果你想下线,你需要一些插件并在上面使用代码。