php如何实现分数排名,判断该学生第几名,如图

发布网友 发布时间:2022-04-23 02:11

我来回答

2个回答

懂视网 时间:2022-04-28 12:21

PHP实现排名并查询指定用户排名

如图:
假设一个user表,此时需要根据number客户数量对用户进行排名。
user表

于是,我们要对user表内的用户进行一个排名:

$sql = "SELECT p.name,p.number, @rownum := @rownum + 1 AS rownum FROM (SELECT @rownum := 0) r, (SELECT * FROM ruser ORDER BY number DESC) AS p"

*注:*1、 SELECT @rownum := 0:表示对rownum赋初始值0
2、@rownum := @rownum + 1:表示对rownum加1,语句中会从1开始,每一行往下都自动加1
查询结果如下:
排行
如图所示,上述代码会根据user表中的number从大到小进行排序。

如果需要查询用户小王的排名,就要根据他的openid来查询排名:

$sql = "SELECT b.openid,b.name,b.number,b.rownum FROM(SELECT t.*, @rownum := @rownum + 1 AS rownum FROM (SELECT @rownum := 0) r,(SELECT * FROM partneruser ORDER BY `number` DESC) AS t) AS b WHERE b.openid = "o4mxs5Tia6Ieayvxiebx8rTc1zO4" ";

查询结果如下:
用户排名

热心网友 时间:2022-04-28 09:29

先根据票数倒序查询票数表,sql语句大概是

"SELECT 学生id,票数 FROM 票数表 ORDER BY 票数 DESC";假设得到的结果集赋值为 $res,

再用PHP遍历,

$student = array();
foreach ($res as $key => $value) {
    $student[$value['学生id']] = $key +1;

最后就可以得到student排名数组,键是学生的id,值就是学生的排名。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com