我的功能:
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(传递:数字)
答案 0 :(得分:1)
echo "<li>".$r['title'].m_gen($r['id'])."</li>\n";
首先它执行m_gen函数(如果有更多级别则再递归),在最后一级它回显(因为在递归函数中有一个echo),然后返回“父”,函数它叫它,那个回声,等等。
你应该这样做:
echo "<li>".$r['title'];
m_gen($r['id']);
echo "</li>\n";