Php 如何获得正确的排名与无限卷轴?

Php 如何获得正确的排名与无限卷轴?,php,mysql,laravel-5,infinite-scroll,Php,Mysql,Laravel 5,Infinite Scroll,我得到视频的排名根据净投票。我得到了这样的正确结果 id | net_votes| rank ------ | -------: |:----: 2 | 11 | 1 4 | 6 | 2 1 | 5 | 3 5 | 5 | 4 3 | 3 | 5 由于大量的视频和避免加载问题,我尝试使用无限滚动。 当我使用无限滚动时,前5个视频显示正确的排名,当我向

我得到视频的排名根据净投票。我得到了这样的正确结果

id     | net_votes| rank
------ | -------: |:----:
2      |    11    |   1
4      |    6     |   2
1      |    5     |   3
5      |    5     |   4
3      |    3     |   5
由于大量的视频和避免加载问题,我尝试使用无限滚动。 当我使用无限滚动时,前5个视频显示正确的排名,当我向下滚动加载另外5个视频时,排名显示为1-5(错误的排名)。rank正在检查这5个视频。 我需要获得连续排名时,我滚动。有人能帮我吗

这是我的密码

    $subquery = "(
             SELECT    username,
                       net_votes,
                       contest_portfolio.id,
                       video,
                       portfolio_id,
                       Sum(net_votes) AS total,
             FROM      contest_portfolio
             LEFT JOIN portfolio
             ON        contest_portfolio.portfolio_id = portfolio.id
             LEFT JOIN users
             ON        portfolio.user_id = users.id
             LEFT JOIN profile
             ON        users.id = profile.user_id
             WHERE     contest_portfolio.status
             GROUP BY  contest_portfolio.id
             ORDER BY  total DESC,
                       contest_portfolio.created_at DESC ) totals,
                       (SELECT @r:=0) rank";

        $posts = DB::table(DB::raw($subquery))
            ->select(
                '*',
                'total',
                DB::raw('@r:=@r+1 as rank'),
                DB::raw('@l:=total'))
            ->paginate('5');

if ($request->ajax()) {
    $view = view('site.data',compact('posts'))->render();
    return response()->json(['html'=>$view]);
}

return view('my-post',compact('posts'));

您可以发送在请求中加载的最后一个列组,然后将其添加到DB::raw(“@r:=@r+”.$lastRankLoaded+1.‘as rank”);您可以发送在请求中加载的最后一个列组,然后将其添加到DB::raw(“@r:=@r+”.$lastRankLoaded+1.‘as rank’),