Php 根据特定子id获取祖先树视图
我有一个名为tbl_tasks的任务表。这有数据,也有父项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
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'> ";?><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选择所有祖先任务