首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在php中创建第n层的树视图

问在php中创建第n层的树视图
EN

Stack Overflow用户
提问于 2014-12-08 01:52:48
回答 1查看 91关注 0票数 0

您好,我想在第n层创建一个树视图,我有这个查询

代码语言:javascript
复制
<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层的树视图。将有任何简单的功能,如果可以创建,然后请帮助谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-12-08 21:36:03

首先,"mysql_*“函数已被完全弃用。请改用PDO。

接下来,考虑使用递归函数来遍历查询结果。我相信array_walk_recursive在这方面应该有很大的帮助。

在带有父信息的单个数组中查询数据库中的所有内容(数组应该类似于:array( $element_id => array( 'parent' => $parent_id, $element))),然后使用该信息创建数组树。

要将树形数组转换为列表,只需使用带有自定义回调的array_walk_recursive即可。

如果我没记错的话,有一些本机函数可以处理这类事情,但我目前还不能使用它。我一找到就会回来的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27345802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档