php查询mysql数据库中所有的四级数据以及第四级数据对应的第三级和第二级的名称字段怎么查?

图一表里的数据图二的方式查出来怎么查有人会吗?注意:要的只是第四级的数据以及第三级和第二级的名称并拼接成图二的数据样式传回到C层!江湖救急!!!!

这个需要用程序递归处理

$dept_tree=[];
$deptid = 19;

while($deptid>0){
    //假设你的数据库查询是这个函数,根据条件直接查询一条记录返回
    $dept = getone('department',['id'=>$deptid]);
    //防止数据丢失出错
    if(empty($dept))break;
    
    array_unshift($dept_tree,$dept);
    $deptid = $dept['dep_parentid'];
    
    //如果需要防止数据错乱出现递归,这里可以判断一下
    if(in_array($deptid,array_column($dept_tree,'id') !== false){
        //说明职位关系乱了,有死循环
        break;
    }
}

可以把这段代码封装成一个函数使用。这里就不论从哪一级开始查询了,总是能把该职位及其上级全部查询出来,按顺序放进数组里

$dept_tree 类似这样

array(
    0=>array(
    'id'=>1,
    'dep_parentid'=>0,
    'dep_name'=>'顶级',
    ),
    1=>array(
    'id'=>2,
    'dep_parentid'=>1,
    'dep_name'=>'国灿金融',
    ),
    2=>array(
    'id'=>4,
    'dep_parentid'=>2,
    'dep_name'=>'招聘部',
    ),
    3=>array(
    'id'=>19,
    'dep_parentid'=>4,
    'dep_name'=>'经理助理',
    ),
)

温馨提示:答案为网友推荐,仅供参考
相似回答