Php 通过递归调用函数从数据库检索数据后动态填充菜单
我正在为我的大学项目建立一个网站,并决定创建首页。在它上面,我试图通过表示父类别来显示菜单,并通过递归调用一个函数(该函数通过从数据库获取数据来执行相同操作)来动态填充类别及其子类别。但是,结果仅显示主菜单或父菜单,而不显示子类别。我不知所措。 php代码如下所示Php 通过递归调用函数从数据库检索数据后动态填充菜单,php,recursive-query,Php,Recursive Query,我正在为我的大学项目建立一个网站,并决定创建首页。在它上面,我试图通过表示父类别来显示菜单,并通过递归调用一个函数(该函数通过从数据库获取数据来执行相同操作)来动态填充类别及其子类别。但是,结果仅显示主菜单或父菜单,而不显示子类别。我不知所措。 php代码如下所示 <?php session_start(); include("connection.php"); $a=0; if(isset($_SESSION["valid_user"])) { echo "WELCOME ";
<?php
session_start();
include("connection.php");
$a=0;
if(isset($_SESSION["valid_user"]))
{
echo "WELCOME ";
echo $_SESSION["valid_user"];
$name = $_SESSION["valid_user"];
$sqllist = "select * from category order by category_name";
$rscatlist = mysql_query($sqllist);
$catid1 = "";
$opt = "";
while($rowcatlist = mysql_fetch_array($rscatlist))
{
$catid1 = $rowcatlist["category_id"];
$catname = $rowcatlist["category_name"];
$opt .= "<option value='$catid1'>$catname</option>";
}
$sql1 = "select * from register where email_id='$name'" ;
$rs1 = mysql_query($sql1);
$row = 0;
$row1 = "";
while($row1=mysql_fetch_array($rs1))
{
$row = $row1["admin"];
}
if($row==1)
{
echo "                             <a href='admin/usermanagement/index.php'>Management Services </a>   ";
}
echo "<p align='right'><a href='logout.php'><font size='3'>logout</font></a></p>"."<br>" ."<br/>";
}
else
{
echo "<p align='right'><a href='register.php'><font size='3'>Register</font></a> or <a href='login.php'><font size='3'>Login</font></a></p>"."<br/>"."<br/>";
}
$tbl = "";
$cat_id = 0;
$tbl = recursive($tbl,$cat_id);
function recursive($tbl,$cat_id)
{
$sql = "select * from category where parent_id='$cat_id'";
$rs = mysql_query($sql);
$tbl.="<ul>";
while($row=mysql_fetch_array($rs))
{
$tbl .= "<li><a href='product.php?category_id=$row'[category_id]'>$row[category_name]</a>";
$sql1 = "select * from category where parent_id=$row'[category_id]'";
$rs1 = mysql_query($sql1);
while($row1 = mysql_fetch_array($rs1))
{
recursive($tbl,$row["category_id"]);
}
$tbl.="</li>";
}
$tbl.="</ul>";
return $tbl;
}
?>
在定义递归函数之前调用该函数似乎很奇怪。同样奇怪的是,您只为$cat_id 0调用该函数。您是否也需要遍历所有的主级别类别ID并将它们传递到函数中
天哪,有没有人教过你评论你的代码 谢谢你指出这一点。很抱歉,因为我已经有一段时间没有以用户身份登录stackoverflow,所以延迟回复。这确实是问题所在。是的,评论和我从来没有很好地相处过;