分销系统获得一个用户的所有下级

在做分销系统的时候,上下级的关系只有父id的情况下,获得这个id的所有下线,下线的下线
    public function countLine($parentId,$router,$routerArr){
        //$parentId  上级的ID/(下级的上级ID)
        //$router   实时路由,当用户没有下级的时候,赋值给路由数组
        //$routerArr 路由数组,用户id为键名,键值为路由
        $routerArr[$parentId] = $router; //当前用户的路由
        $sql = "SELECT id FROM user WHERE parentid = '".$parentId."' ";
        $query = $this->db->query($sql);
        if($query->num_rows() > 0 ){
            $all = $query->result_array();
            $number = count($all);
            foreach ($all as $key => $value) { 
                $nextRouter = $router.','.$value['id'];
                $query = $this->countLine($value['id'],$nextRouter,$routerArr);
                $number += $query['number'];
                $routerArr =& $query['routerArr'];
            }
        }else{
            $number = 0;
        }
        return array("number"=>$number,"router"=>$router,"routerArr"=>$routerArr);
    }

     public function showCountLine(){
        var_dump($this->countLine('100','100',array()));
    }
一般比较方便的做法是下级保留上级的路由,这个路由包含了所有关联的上级id关系例如一个用户的ID为1000,这个用户的上级的ID是900,上级的上级是800,那么他的路由应该保存为:系统,100,200...800.900,1000。
                
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值