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’),