Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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 - Fatal编程技术网

PHP树菜单嵌套列表问题

PHP树菜单嵌套列表问题,php,Php,我的代码出于某种原因显示了树菜单的嵌套列表所有错误有人能帮我纠正这个问题吗?因此,我的嵌套列表对于我的树菜单是正确嵌套的 这是我的PHP代码 function category_tree($parent = 0, $parent_url = ''){ echo "<ol>"; $mysqli = mysqli_connect("localhost", "root", "", "sitename"); $q = "SELECT id, category, url

我的代码出于某种原因显示了树菜单的嵌套列表所有错误有人能帮我纠正这个问题吗?因此,我的嵌套列表对于我的树菜单是正确嵌套的

这是我的PHP代码

function category_tree($parent = 0, $parent_url = ''){
    echo "<ol>";
    $mysqli = mysqli_connect("localhost", "root", "", "sitename");
    $q = "SELECT id, category, url FROM categories WHERE parent_id = '" . $parent . "' ORDER BY category asc";
    $r = mysqli_query($mysqli, $q);
    while($rs = mysqli_fetch_array($r) ){
        $url = $parent_url . $rs['url'];
        echo '<li><a href="' . $url . '" title="' . $rs['category'] . ' Category Link">' . $rs['category'] . '</a></li>';
        category_tree($rs['id'], $url);
    }
    mysqli_free_result($r);
    echo "</ol>";
}
function category\u tree($parent=0,$parent\u url=''){
回声“;
$mysqli=mysqli_connect(“本地主机”、“根目录”、“站点名称”);
$q=“从父类中选择id、类别、url,其中父类的id=”。$parent。“”按类别asc排序”;
$r=mysqli\u查询($mysqli,$q);
而($rs=mysqli\u fetch\u数组($r)){
$url=$parent_url.$rs['url'];
回音“
  • ”; 类别树($rs['id',$url); } mysqli_免费_结果($r); 回声“; }
    最有可能的是,没有一个活动结果集出现过多


    在递归调用之前释放结果集。将结果集的所有行填充到PHP$数组中。然后释放该结果集。然后使用一个循环来打印树元素(就像u r所做的那样),并找到进一步的子树。它可以帮助您。

    如果不进一步看,我会说您需要在回显
    LI
    元素的结束标记之前调用
    category\u tree

        echo '<li><a href="' . $url . '" title="' . $rs['category'] . ' Category Link">' . $rs['category'] . '</a>';
        category_tree($rs['id'], $url);
        echo '</li>';
    
    echo'
  • '; 类别树($rs['id',$url); 回音“
  • ”;
    为什么要使用程序化mysqli接口?为什么使用这些接口会有什么问题?您可能需要研究分层数据的其他存储策略,例如,可以将递归数据库调用替换为总共1-2个调用。