簡體   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