Php 子菜单不显示
我制作了一个数据来自数据库的菜单。我需要查看二级和三级菜单,但问题是子菜单没有显示。仅显示第一级 我添加了css和php代码 Plz检查菜单图片: 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
<?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源代码以查看子菜单是否在那里并且它只是没有显示?您是否检查了您的查询是否可以返回子菜单行?您没有指出您的第二级和第三级…除此之外,它们需要位于不同的循环中,并且位于不同的