ThinkPHP实现排行榜分页统计
ThinkPHP实现排行榜分页统计及用户所在排名
排行榜分页统计
$res1 = ExamRecord::where($map) ->alias('a') ->field('*,(@rank:=IFNULL(@rank,' . $size . ')+1) as rank') ->order($order) ->with('user') ->paginate($limit);
用户排名
$user_id = $this->user(true); $sql = ExamRecord::where($map) ->alias('a') ->field('*,(@my_rank:=IFNULL(@my_rank,0)+1) as rank') ->order($order) ->fetchSql(true) ->select(); $res = Db::table("($sql) b") ->where('b.user_id', $user_id) ->join('user c','c.id = b.user_id') ->field('b.*,c.nick_name,c.avatar') ->find();