带<;的递归PHP函数;ul>&书信电报;李>;
如何安排递归PHP函数的带<;的递归PHP函数;ul>&书信电报;李>;,php,recursion,html-lists,Php,Recursion,Html Lists,如何安排递归PHP函数的&?我做了如下操作,但无法正常工作: <?php echo '<ul>'; $sql = mysql_query("select * from categories where parent_id = 0"); while($rs=mysql_fetch_array($sql)){ echo '<li>'.$rs['name']; echo show_subcategory(($rs['cat_id'])); echo '&
&
?我做了如下操作,但无法正常工作:
<?php
echo '<ul>';
$sql = mysql_query("select * from categories where parent_id = 0");
while($rs=mysql_fetch_array($sql)){
echo '<li>'.$rs['name'];
echo show_subcategory(($rs['cat_id']));
echo '</li>';
}
echo '</ul>';
function show_subcategory($category_id){
$sql = mysql_query("select * from categories where parent_id ='$category_id'");
if(mysql_num_rows()>0){
echo '<ul>';
while($rs=mysql_fetch_array($sql)){
echo '<li>'.$rs['name'];
echo show_subcategory(($rs['cat_id']));
echo '</ul></li>';
}
}else{
echo '</li>';
}
}
?>
由于它是一个递归函数,应该输出每个类别和所有子类别的列表,因此您也可以将“顶级”父类别显示移到其中(并通过调用
show\u subcategory(0);
启动它)
在此之后,我们可以删除子关闭
和
标记,它将为我们提供类似于:
function show_subcategory($category_id){
$sql = mysql_query("select * from categories where parent_id ='$category_id'");
if(mysql_num_rows()>0){
echo '<ul>';
while($rs = mysql_fetch_array($sql)){
echo '<li>' . $rs['name'];
echo show_subcategory(($rs['cat_id']));
echo '</li>';
}
echo '</ul>';
}
}
show_subcategory(0);
函数显示子类别($category\u id){
$sql=mysql_查询(“从父类_id='$category_id''的类别中选择*);
if(mysql\u num\u rows()>0){
回声“”;
而($rs=mysql\u fetch\u数组($sql)){
回音“- ”.$rs['name'];
echo show_子类别($rs['cat_id']);
回音“
”;
}
回声“
”;
}
}
显示_子类别(0);
旁注,非具体答案:我建议升级到或扩展。这两种语句都支持预先准备好的语句,这些语句提供了针对SQL注入攻击的安全性(您当前的代码容易受到SQL注入攻击)。这大致是正确的结构,您收到了什么错误消息?如果您从functionNULL中移动了
function show_subcategory($category_id){
$sql = mysql_query("select * from categories where parent_id ='$category_id'");
if(mysql_num_rows()>0){
echo '<ul>';
while($rs = mysql_fetch_array($sql)){
echo '<li>' . $rs['name'];
echo show_subcategory(($rs['cat_id']));
echo '</li>';
}
echo '</ul>';
}
}
show_subcategory(0);