查询列表怎么查看当前和上次排行名次? [ 2.0 版本 ]
想请教一下排行榜怎么弄,我现在做的项目有个需求,给用户投票,然后展示用户当前排名和上次排名(分日排行、周排行、月排行),也就是分别展示今日排名对比昨日排名、本周排名对比上周排名,本月排名对比上月排名
现在当前排行勉强弄出来了
//拿日排行举例 先查询表按照日投票字段排序并查询出来
$offset=$page*20;
$starsers=$model_starser->find()->where(['s_state'=>'1'])->orderBy("voteday DESC")->offset($offset)->limit(20)->asArray()->all();
//循环数据,再查每条数据出现在第几行
foreach ($starsers as $s => $starser) {
$rownum=Yii::$app->db->createCommand('SELECT * FROM (SELECT s_id,(@rowNum:=@rowNum+1) AS rowNo FROM starser,(SELECT (@rowNum :=0) ) b ORDER BY voteday DESC) c WHERE s_id='.$starser['s_id'])->queryOne();
$starsers[$s]['NO']=$rownum['rowNo '];
}
//这样数组里面的NO字段就是排名
但是不知道昨日排名怎么弄(有个投票记录表,字段有主键id、投票人id、被投票人id、投票时间),但是不知道怎么查询上面数组每条数据的上次排名怎么查询,有谁知道怎么弄么?请多指教啊~
共 3 个回答
lzrqyc110
注册时间:2016-01-02
最后登录:2018-12-28
在线时长:29小时34分
最后登录:2018-12-28
在线时长:29小时34分
- 粉丝37
- 金钱4195
- 威望40
- 积分4885