Php 多列表函数无法正常工作

Php 多列表函数无法正常工作,php,mysql,Php,Mysql,我的职能: function m_gen($n) { $q = mysql_query("select * from nume where parentid = '$n'"); if (mysql_num_rows($q) > 0) { echo "<ul>\n"; while ($r = mysql_fetch_assoc($q)) { echo "<li>".$r['title'].m_ge

我的职能:

function m_gen($n) {
    $q = mysql_query("select * from nume where parentid = '$n'");
    if (mysql_num_rows($q) > 0) {
        echo "<ul>\n";
        while ($r = mysql_fetch_assoc($q)) {
            echo "<li>".$r['title'].m_gen($r['id'])."</li>\n";
    }
    echo "</ul>\n";
    } else {
        echo "";
    }
}
生成以下结果:

调用该函数时,HTML编写不正确

结果应该是:

<li>main3
    <ul>
        <li>sub main3 > main1</li>
        <li>sub main3 > main2</li>
        <li>sub main3 > main3</li>
        <li>sub main3 > main4</li>
        <li>sub main3 > main5</li>
        <li>sub main3 > main6</li>
    </ul>
</li>
  • main 3
    • 子main3>main1
    • 辅助主3>主2
    • sub main3>main3
    • 辅助主3>主4
    • 辅助主3>主5
    • 子main3>main6
  • 但是,情况是这样的:

    m_gen(0);
    
        <ul>
            <li>sub main3 > main1</li>
            <li>sub main3 > main2</li>
            <li>sub main3 > main3</li>
            <li>sub main3 > main4</li>
            <li>sub main3 > main5</li>
            <li>sub main3 > main6</li>
        </ul>
    <li>main3</li>
    
    • 子main3>main1
    • 辅助主3>主2
    • sub main3>main3
    • 辅助主3>主4
    • 辅助主3>主5
    • 子main3>main6
  • 缅因州3
  • 这个函数有什么问题

    我试图找到一个解决办法,但没有得到结果


    (pass:nume)

    不,不应该是这样,因为当你这样做时:

    echo "<li>".$r['title'].m_gen($r['id'])."</li>\n";
    
    echo“
  • ”$r['title'].m_gen($r['id'])。“
  • \n”;
    首先,它执行m_gen函数(如果有更多的级别,则再次递归),在最后一个级别它进行回音(因为递归函数中有回音),然后返回“父级”,调用它的函数,该函数进行回音,依此类推

    您应该这样做:

    echo "<li>".$r['title'];
    m_gen($r['id']);
    echo "</li>\n";
    
    echo“
  • ”$r['title']; m_gen($r['id']); 回声“
  • \n”;
    @Chris,谢谢你纠正我的问题