php – 显示分层数据
作者:互联网
我正在玩一个我在这里找到的关于’树菜单’的代码示例,并想提出这个问题.
function tree($id)
{
$query = "SELECT `name`,`id` from `table` WHERE `id_parrent` = '$id'";
$result = mysql_query($query);
if(mysql_num_rows($result) != 0)
{
echo "<ul>";
while($row = mysql_fetch_array($result))
{
echo "<li>",$row[name],"</li>";
tree($row[id]);
}
echo "</ul>";
}
}
如果我想以这样的方式显示项目怎么办:
<ul>
<li>item 1</li>
<li>item 2</li>
<li style="padding-left:10px;">item 3-has parent 2</li>
<li style="padding-left:20px;">item 4-has parent 3</li>
<li style="padding-left:10px;">item 5-has parent 2</li>
<li>item 6</li>
</ul>
我的主要问题是以某种方式找到级别,以便我可以乘以级别*填充并创建我的列表.
任何建议,将不胜感激.
解决方法:
您需要树函数来跟踪级别,然后在级别大于1时应用填充.
function tree($id, $level=1) {
$query = "SELECT `name`,`id` from `table` WHERE `id_parrent` = '$id'";
$result = mysql_query($query);
if (mysql_num_rows($result) != 0) {
echo "<ul>";
while ($row = mysql_fetch_array($result)) {
if ($level == 1)
echo "<li>" . $row[name] . "</li>";
else
echo "<li style='padding-left: " + (($level - 1) * 10) + "px;'>" . $row[name] . "</li>";
tree($row[id], $level + 1);
}
echo "</ul>";
}
}
标签:html,php,hierarchical-data 来源: https://codeday.me/bug/20191009/1876299.html