Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.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函数;ul>&书信电报;李>;_Php_Recursion_Html Lists - Fatal编程技术网

带<;的递归PHP函数;ul>&书信电报;李>;

带<;的递归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函数的
&
  • ?我做了如下操作,但无法正常工作:

    <?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中移动了
      ,则Null值对于rootcheck来说是更好的值
      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);