php上下级获取方法,摘抄自某源码,保存下来方便学习下
//获取上级会员
public function parent_user($uid,$num=1,$lv=1)
{
$pid = db($this->table)->where('id',$uid)->value('parent_id');
$uinfo = db($this->table)->where('id',$pid)->find();
if($uinfo){
if($uinfo['parent_id']&&$num>1) $data = self::parent_user($uinfo['id'],$num-1,$lv+1);
$data[] = ['id'=>$uinfo['id'],'pid'=>$uinfo['parent_id'],'lv'=>$lv,'status'=>$uinfo['status']];
return $data;
}
return false;
}
//获取下级会员
public function child_user($uid,$num=1,$lv=1)
{
$data=[];
$where = [];
if ($num ==1) {
$where[] = ['parent_id','=',$uid];
$data = db('xy_users')->where('parent_id', $uid)->field('id')->column('id');
}else if ($num == 2) {
//二代
$ids1 = db('xy_users')->where('parent_id', $uid)->field('id')->column('id');
$ids1 ? $where[] = ['parent_id','in',$ids1] : $where[] = ['parent_id','in',[-1]];
$data = db('xy_users')->where($where)->field('id')->column('id');
$data = $lv ? array_merge($ids1 ,$data) : $data;
}else if ($num == 3) {
//三代
$ids1 = db('xy_users')->where('parent_id', $uid)->field('id')->column('id');
$ids1 ? $wher[] = ['parent_id','in',$ids1] : $wher[] = ['parent_id','in',[-1]];
$ids2 = db('xy_users')->where($wher)->field('id')->column('id');
$ids2 ? $where[] = ['parent_id','in',$ids2] : $where[] = ['parent_id','in',[-1]];
$data = db('xy_users')->where($where)->field('id')->column('id');
$data = $lv ? array_merge($ids1 ,$ids2, $data) : $data;
}else if ($num == 4) {
//四带
$ids1 = db('xy_users')->where('parent_id', $uid)->field('id')->column('id');
$ids1 ? $wher[] = ['parent_id','in',$ids1] : $wher[] =['parent_id','in',[-1]];
$ids2 = db('xy_users')->where($wher)->field('id')->column('id');
$ids2 ? $where2[] = ['parent_id','in',$ids2] : $where2[] = ['parent_id','in',[-1]];
$ids3 = db('xy_users')->where($where2)->field('id')->column('id');
$ids3 ? $where[] = ['parent_id','in',$ids3] : $where[] = ['parent_id','in',[-1]];
$data = db('xy_users')->where($where)->field('id')->column('id');
$data = $lv ? array_merge($ids1 ,$ids2,$ids3, $data): $data;
}else if ($num == 5) {
//五带
$ids1 = db('xy_users')->where('parent_id', $uid)->field('id')->column('id');
$ids1 ? $wher[] = ['parent_id','in',$ids1] : $wher[] = ['parent_id','in',[-1]];
$ids2 = db('xy_users')->where($wher)->field('id')->column('id');
$ids2 ? $where2[] = ['parent_id','in',$ids2] : $where2[] = ['parent_id','in',[-1]];
$ids3 = db('xy_users')->where($where2)->field('id')->column('id');
$ids3 ? $where3[] = ['parent_id','in',$ids3] : $where3[] = ['parent_id','in',[-1]];
$ids4 = db('xy_users')->where($where3)->field('id')->column('id');
$ids4 ? $where[] = ['parent_id','in',$ids4] : $where[] = ['parent_id','in',[-1]];
$data = db('xy_users')->where($where)->field('id')->column('id');
$data = $lv ? array_merge($ids1 ,$ids2,$ids3,$ids4, $data) :$data;
}
return $data;
}
相关文章