我需要帮助。下面我有一个名为"Tasks“的表名
SNO Taskname parentid
---------------------
46 Task-1 0
47 Task-2 46
48 Task-3 47
49 Task-4 46
50 task-5 47
51 task-6 50例如,我在任务页48,现在我们将显示相关的任务编号。共48人。因此,输出将是46,47,49,50,51。
我尝试了下面的代码,但它不起作用:
function getTask($task_id) {
$rs=mysql_query("select task_id,taskname,p_id from task where task_id='".$task_id."'");
$rs_req=mysql_fetch_array($rs) or die(mysql_error());
$reqt=$rs_req['p_id'];
return $reqt;
}
$task = getTask($task_id);
$pid = $task;
$related_tasks = [];
while ($pid != 0) {
$pid = getTask($pid);
$relatedTasks[] = $pid;
}
print_r($relatedTasks);发布于 2015-05-07 00:31:44
关系数据库不是用来处理递归查询的。
您可以选择ID为48的第一行,然后递归检查parentId != 0,如果是,则执行另一个查询。就像这样
$task = getTask(48);
$related_tasks = [];
while( $task['parentID'] != 0) {
$task = getTask( $task['parentId']);
$relatedTasks[] = $task;
}https://stackoverflow.com/questions/30082313
复制相似问题