您好我想在第n级创建一个treview 我有这个查询
<ul style="list-style:none;" id="MainMenu">
<?php
$selectfolders=mysql_query("select * from tbl_folders where user_id=1");
while($foldername=mysql_fetch_array($selectfolders))
{?>
<li style="padding:5px;" >
<?php echo $foldername['title'];?>
<?php
$selecttasks=mysql_query("select * from tbl_tasks where project_id=$foldername[f_id] and parent_id=0");
$numtask=mysql_num_rows($selecttasks);
if($numtask>=1)
{
?>
<ul id="TaskList">
<?php
while($tasks=mysql_fetch_array($selecttasks)){
if($tasks['parent_id']==0)
{?>
<li><?php echo $tasks['title'];?></li>
<?php }
else
{
?>
<li><?php echo $tasks['title'];?>
////////////////////Here will be again new query for subtask and for next step again need to more queries///////////
<?php $selectsubtasks=mysql_query("select * from tbl_tasks where parent_id=$tasks[t_id]");?>
<ul id="SubTaskList">
<?php while($subtask=mysql_fetch_array($selectsubtasks))
{?>
<li><?php echo $subtask['title'];?></li>
<?php }?>
</ul>
</li>
<?php }
}?>
</ul>
<?php }?>
</li>
<?php }?>
</ul>
这一直到两级。但是这样我需要越来越多的SQL查询。 所以请帮助我如何在简单的一两个SQL查询中在第n级创建treview。 如果可以创建那么将有任何简单的功能请帮助谢谢。
答案 0 :(得分:0)
首先,&#34; mysql _ *&#34;函数已被弃用。请改用PDO。
接下来,考虑使用recusive函数来遍历查询结果。我相信array_walk_recursive在这里应该有很大的帮助。
使用父信息在单个数组中查询数据库中的所有内容(数组应该如下所示:array( $element_id => array( 'parent' => $parent_id, $element))
)然后使用该信息创建数组树。
要将树阵列转换为列表,只需将array_walk_recursive
与自定义回调一起使用。
如果我没记错的话,有一些本机功能可以管理这类事情,但目前无法掌握它。我一找到就会回来。