Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 子菜单不显示_Php_Html_Css_Drop Down Menu - Fatal编程技术网

Php 子菜单不显示

Php 子菜单不显示,php,html,css,drop-down-menu,Php,Html,Css,Drop Down Menu,我制作了一个数据来自数据库的菜单。我需要查看二级和三级菜单,但问题是子菜单没有显示。仅显示第一级 我添加了css和php代码 Plz检查菜单图片: php代码: <?php function display_children($parent, $level) { $servername = "localhost"; $username = "root"; $password = ""; $dbname = "nfs"; $conn = new m

我制作了一个数据来自数据库的菜单。我需要查看二级和三级菜单,但问题是子菜单没有显示。仅显示第一级

我添加了css和php代码

Plz检查菜单图片:

php代码:

<?php

function display_children($parent, $level) {
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "nfs";
    $conn = new mysqli($servername, $username, $password, $dbname);

   $result = mysqli_query($conn, "SELECT a.cat_id, a.product, a.category_link, Deriv1.Count FROM `category` a  LEFT OUTER JOIN (SELECT parent_id, COUNT(*) AS Count FROM `category` GROUP BY parent_id) Deriv1 ON a.cat_id = Deriv1.parent_id WHERE a.parent_id=" . $parent);
    echo "<nav><ul class='nav'>";
    while ($row = mysqli_fetch_assoc($result)) {
        if ($row['Count'] > 0) {
            echo "<li><a href='" . $row['category_link'] . "'>" . $row['product'] . "</a>";
            display_children($row['cat_id'], $level + 1);
            echo "</li>";
        } elseif ($row['Count']==0) {
            echo "<li><a href='" . $row['category_link'] . "'>" . $row['product'] . "</a></li>";
        } else;
    }
    echo "</ul><nav>";
}
echo display_children(0, 1);
?>

您的if语句不正确。
使用此函数计算行数。
$count=mysqli\u num\u行($result);
如果($count>0){
..............

}

OPs if语句检查的是
Deriv1.Count
的值,而不是row Count.side注释-由于在整个函数中使用
echo
,因此在
echo display_children(0,1)中使用
echo
是多余和不必要的。您是否查看了html源代码以查看子菜单是否在那里并且它只是没有显示?您是否检查了您的查询是否可以返回子菜单行?您没有指出您的第二级和第三级…除此之外,它们需要位于不同的循环中,并且位于不同的