记录一点自己写的Php代码(1)取得任意种类,无限级下线

//获取所有下线
function get_all_heeler($user_id,$user_rank = 0){

    $user_id_array = $user_id;

    while (true) {

        if (!empty($user_rank)) {
            $judge =  "AND user_rank =".$user_rank;
        }

        //取得所有直接下线 并累计到数组里面
        $row = $GLOBALS['db']->getAll("SELECT user_name,user_id,user_rank FROM " . $GLOBALS['ecs']->table('users') . " WHERE parent_id in (" . $user_id_array . ")" . $judge);

        if (!empty($row)) {
            $user_id_array = null;
            foreach ($row as $key => $value) {
                
                $user_id_array .= $value['user_id'] . ",";

                //查询还有没有下级
                $is_heeler .= $GLOBALS['db']->getOne("SELECT user_id FROM " . $GLOBALS['ecs']->table('users') . " WHERE parent_id = ".$value['user_id'].  $judge);
            }
        }

        //判断还有没有下级如果有则继续循环   否则退出循环        
        if (empty($is_heeler)) {
            break;
        }
        $is_heeler = null;

        //累计结果
        $result .= $user_id_array;

        //去掉结尾的逗号,为下次查询做准备
        if (substr($user_id_array, -1) == ',') {
            $user_id_array = substr($user_id_array,0, strlen($user_id_array)-1);
        }

    }

    //去掉结尾的逗号
    $result .= substr($user_id_array,0, strlen($user_id_array)-1);
    return $result;
}
原文地址:https://www.cnblogs.com/jh1994/p/4928217.html