结果中的PDO MySQL行位置


PDO MySQL row location in result

我正在构建一个将"分数"存储在数据库中的应用程序,我希望能够告诉人们他们的排名。

现在,我有一个选择查询,它获取所有数据库行,并按分数降序排列,所以分数是从高到低的。

现在我想要的是,能够向每个用户显示他们的个人排名。。。因此,如果Jim在该列表中排名33,它将在他的工作站上显示他的排名是33…

那么,我如何才能得到Jim在结果集中的行号呢?(它们是按唯一的员工id排序的……但我认为你明白了)

所以,如果Jim登录,他可以看到这样的信息:你有670分,你的等级是33。

我在MySQL上使用PDO。

我希望这种描述有意义。

我的例子是MySQLi,但PDO/MySQL 的逻辑相同

假设$con是您的数据库连接变量:

 $All_Users = $con->query("SELECT * FROM Users ORDER BY Score DESC"); // Get all users and order by descending order.
    $rank = 0;
        while($UserInfo = $All_Users->fetch_object()) {
          $rank++;
          echo $UserInfo->Username."has a rank of". $rank;
        }

输出将采用以下格式,在这种情况下,我们的users表中只有2个用户,按降序排列:

Bob的排名为3
乔的排名是2
Pete的等级为1

如果在mysql查询中将DESC更改为ASC,则输出为:

皮特的等级为1
乔的排名是2
Pete的等级为3