我的功能:
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_gen 函数(然后如果有更多层则再次递归),在最后一层回显(因为递归函数中有回显),然后返回“父”函数那个叫它,那个 echo ,等等。
你应该这样做:
echo "<li>".$r['title'];
m_gen($r['id']);
echo "</li>\n";
关于php - 多个列表功能无法正常工作 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21128109/