为了账号安全,请及时绑定邮箱和手机立即绑定

递归数据库查询以构建 ul 列表

递归数据库查询以构建 ul 列表

PHP
泛舟湖上清波郎朗 2021-10-08 14:32:43
我有一个数据库表,我必须从中构建一个 UL 列表该表的设置类似于 cat-id parent-id(是任何父级的 cat-id) cat-name cat-image我可以轻松获得父级 ID 为“0”的根猫,但在我的一生中,我不知道该怎么做,因此最终结果是rootcat --childParent ---childfunction cats(){        $sql = "SELECT * FROM `cats";        $cats;        $con = mysqli_connect($this->vars["host"], $this->vars["user"], $this->vars["pass"], $this->vars["db"]);        if(mysqli_connect_errno()){            print "START MYSQLI ERROR<br/>".            mysqli_connect_error() .            "<br/>ENDMYSQLI ERROR";        }else{            $res = mysqli_query($con, $sql);            if(mysqli_num_rows($res) > 0){                while($cat = $res->fetch_array(MYSQLI_ASSOC)){                    if($cat["parent-id"] == "0"){                        $cats[] = $cat["cat-name"];                    }                }            }            mysqli_free_result($res);            mysqli_close($con);            return $cats;        }
查看完整描述

2 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

您可以像这样解析子类别,但是每次检查父类别具有哪些类别时,它确实需要进行 sql 连接:


function cats(){

    $sql = "SELECT * FROM `cats";

    $cats;

    $con = mysqli_connect($this->vars["host"], $this->vars["user"], $this->vars["pass"], $this->vars["db"]);

    if(mysqli_connect_errno()){

        print "START MYSQLI ERROR<br/>".

        mysqli_connect_error() .

        "<br/>ENDMYSQLI ERROR";

    }else{

        $res = mysqli_query($con, $sql);

        if(mysqli_num_rows($res) > 0){

            while($cat = $res->fetch_array(MYSQLI_ASSOC)){

                if($cat["parent-id"] == "0"){

                    $cats[$key] = $cat["cat-name"];

                    $sql_subCategory = "SELECT * FROM cats where parent_id=". $cat["id"];

                            $res_sub = mysqli_query($con, $sql_subCategory);

                            if(mysqli_num_rows($res_sub) > 0){

                                while($cat_sub = $res_sub->fetch_array(MYSQLI_ASSOC)){

                                   $cats[$cat["cat-name"]] = $cat_sub["cat-name"];

                                }

                            }

                        }

                    }

                }

                mysqli_free_result($res_sub);

                mysqli_free_result($res);

                mysqli_close($con);

                return $cats;

            }

那应该给你数组:


array(

    'cat1' => 'Some Category',

    'cat2' => array(

        'sub1' => 'name',

    ),

);


查看完整回答
反对 回复 2021-10-08
  • 2 回答
  • 0 关注
  • 142 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信