php - 多个列表功能无法正常工作 php

标签 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_gen($r['id'])."</li>\n";
    }
    echo "</ul>\n";
    } else {
        echo "";
    }
}

像这样调用函数:

m_gen(0);

生成以下结果:

当我调用该函数时,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>

但是,发生的事情是这样的:

    <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>

函数有什么问题?

我试图找到解决方案,但我没有得到结果

MySQL source (通行证:数字)

最佳答案

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

echo "<li>".$r['title'].m_gen($r['id'])."</li>\n";

首先它执行 m_ge​​n 函数(然后如果有更多层则再次递归),在最后一层回显(因为递归函数中有回显),然后返回“父”函数那个叫它,那个 echo ,等等。

你应该这样做:

echo "<li>".$r['title'];
m_gen($r['id']);
echo "</li>\n";

关于php - 多个列表功能无法正常工作 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21128109/

相关文章:

PHP 命令行界面 : Possible to set a $_SERVER Variable that's an Array?

Java+MySQL : Read Date as String

C#——从 MySQL 检索数据并在 "pages"中对它们进行排序,而不使用 DataGridView

mysql - 是否有必要在 MySQL 中链接或连接表?

javascript - XMLhttprequest.send() 不向 PHP 发送变量

php - 更改 <select> 值,给定一个数字并从数组中获取值

php - Laravel:如何创建自定义枢轴模型?

php - 将 PDO 数据库对象实例传递给其他类函数

php - 在 UTC 中存储日期和时间并在 PHP/MySQL 中将它们转换为本地时间

mysql - 根据函数值选择条件