Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 根据特定子id获取祖先树视图_Php_Html_Mysql - Fatal编程技术网

Php 根据特定子id获取祖先树视图

Php 根据特定子id获取祖先树视图,php,html,mysql,Php,Html,Mysql,我有一个名为tbl_tasks的任务表。这有数据,也有父项id 表的结构是 t_id, project_id, title , parent_id 1 1 Task1 0 data 2 1 Sub Task1 1 3 1 Child Sub task1 2 project_id,use

我有一个名为tbl_tasks的任务表。这有数据,也有父项id

表的结构是

    t_id, project_id, title ,          parent_id
      1       1         Task1               0
data  2       1         Sub Task1           1
      3       1         Child Sub task1     2      
    project_id,user_id,t_id,createdby

data  1          1       3      3
还有另一个名为tbl_SharedTask的表,该表中有共享任务的数据

表的结构是

    t_id, project_id, title ,          parent_id
      1       1         Task1               0
data  2       1         Sub Task1           1
      3       1         Child Sub task1     2      
    project_id,user_id,t_id,createdby

data  1          1       3      3
当我想为我的共享任务显示祖先树视图时,这将只检测一条记录,而不检测其父记录。也应该是1和2,因为共享的t_id 3有pareint_id 2,2有pareint_id 1

这是我的密码

  $qry="SELECT sh.task_id,tsk.* FROM tbl_sharedtasks sh,tbl_tasks tsk where sh.project_id=1 and sh.user_id=1 and tsk.t_id=sh.task_id";
                        $result=mysql_query($qry);
                        $arrayCategories2 = array();

                        while($row = mysql_fetch_assoc($result)){ 
                        $arrayCategories2[$row['t_id']] = array("parent_id" => $row['parent_id'], "title" =>                       
                        $row['title'],"task_id" => $row['t_id']);   
                        }
                        ?>

                        <?php
                        if(mysql_num_rows($result)!=0)
                        {
                        ?>
                        <?php 

                        createTreeView($arrayCategories2, 0); ?>
                        <?php
                        }?>
这是我的CreateTreeView函数

function createTreeView($array, $currentParent, $currLevel = 0, $prevLevel = -1) 
{
$id=0;
foreach ($array as $categoryId => $category) 
{
    $id++;

    if ($currentParent == $category['parent_id']) 
    {                       
        if ($currLevel > $prevLevel) echo " <ul style='list-style:none; cursor:pointer' id='folder21'> "; 

        if ($currLevel == $prevLevel) echo " </li> ";

        echo "<li > <span class='file'>&nbsp;";?><a onClick="selecttaskval('<?php echo    $category['task_id'];?>','<?php echo $category['title'];?>');"><?php echo $category['title'];?></a> </span>
        <?php
        if ($currLevel > $prevLevel) { $prevLevel = $currLevel; }

        $currLevel++; 

        createTreeView ($array, $categoryId, $currLevel, $prevLevel);

        $currLevel--;               
    }   

 }

 if ($currLevel == $prevLevel) echo " </li>  </ul> ";

 }
只有当我从tbl_任务中选择记录时,这种方法才能正常工作,但当我想从共享表中检测记录时,这种方法就不行了。
请帮忙,谢谢

某种类型的“树”处理对此有用吗?可能有用:。也:。如果有测试数据,它也会很有用。什么样的树…?这是ul基本任务树。任务有父任务,我想根据特定子任务id选择所有祖先任务