PHP代码篇(六)--如何根据邀请人id查询满足条件的会员上级

说,如果有一个会员表,每一个会员都有一个邀请人from_id字段(记录该会员是谁邀请的),知道一个会员id,现在需要查询某一个会员是否是该会员的下级。

表如下:

 一、当下需求

  1、我们需要知道会员id5赵钱,是否是会员id张三的下属会员。

  2、代码思路,从下级往上查,因为一个人只能有一个上级。使用递归查询,查询到上级,进行判断,满足则返回。不满足获取到新的上级,继续查询,一直查询到满足或者,会员没有上级或者,查询完所有的会员记录。

  3、代码如下

/**
 * 判断会员是否是另一个会员的下级
 * @param  [type] $member_id         体系头id
 * @param  [type] $other_member_id     下级id
 * @return [type] 
 */
function getInfo($member_id, $other_member_id){
    //下级id的会员信息
    $from_info = $this->findMemberData(['id'=>$other_member_id], 'id,from_id');
    //对会员的邀请人id进行赋值
    $uid = $from_info['from_id'];
    while ($uid > 0) {//有邀请人,进行判断,满足即返回true;否则继续往上查询,一直查到没有邀请人为止
        $from_info = $this->findMemberData(['id'=>$uid], 'id,from_id');
        if($from_info['from_id'] == $member_id){
            return 1;
        }else{
            //不满足,重新赋值
            $uid = $from_info['from_id'];
        }
    }
    return 0;
}
原文地址:https://www.cnblogs.com/camg/p/11980449.html