繁体   English   中英

在php mysql中显示类别和子类别

[英]Display categories and subcategories in php mysql

无法在php mysql中获取类别和子类别。

在这里,我得到所有类别(猫和子猫):

function get_categories() {
    $conn = db_connect();
    $query = "select * from categories";
    $result = $conn->query($query);
    if(!$result) {
        return false;
    }else {
        $result = db_result_to_array($result);
        return $result;
    }
}

在这里,我得到子猫:

function get_child_cats($parent_id) {
    $conn = db_connect();

    $query = "select * from categories where parent_id = '".$parent_id."'";

    $result = $conn->query($query);

    if(!$result) {
        return false;
    }else {
        $result = db_result_to_array($result);
        return $result;
    }

}

db_result_to_array()函数在此处:

    function db_result_to_array($result) {
    $res_array = array();
    for($count = 0; $row = $result->fetch_assoc(); $count++) {
        $res_array[$count] = $row;
    }
    return $res_array;
}

数据库由cat_id, cat_name, parent_id

在这里,我试图显示猫和子猫:

    if(is_array($categories)) {
    echo "<ul>";
    foreach($categories as $row) {

        if(!$row['parent_id']) {
            $childs = get_child_cats($parent_id);
            echo "<li>".$row['cat_name'];
            if($row['parent_id']) {
                echo "<ul>";
                foreach($childs as $row) {
                    echo "<li>".$row['cat_name']."</li>";
                }
                echo "</ul>";
            }
            echo "</li>";
        }

    }
    echo "</ul>";
}

但是,我只得到猫,没有任何子猫。

您写错了逻辑,认为您的第一个条件是if(!$row['parent_id']) { ,然后在其中添加条件if($row['parent_id']) { 因此,如果满足“ false”条件并且光标进入“ if”内部,那么对于相同的参数和条件,如何为“ true”执行逻辑

我在下面尝试过使您的逻辑正确:

foreach($categories as $row) {
    if(!$row['parent_id']) {
        echo "<li>".$row['cat_name'];
        $childs = get_child_cats($parent_id);

    }
    else {
        echo "<ul>";
        foreach($childs as $row) {
            echo "<li>".$row['cat_name']."</li>";
         }
       echo "</ul>";
    }
    echo "</li>";
}

希望这对你有用!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM