PDO MySQL行的位置结果

时间:2013-08-31 01:11:29

标签: php mysql pdo

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

所以现在,我有我的选择查询,它抓取所有数据库行并按分数降序排序,因此得分从最高到最低。

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

那么我怎样才能得到Jim在结果集中出现的行号? (它们按唯一的员工ID排序......但我认为你明白了这一点)

因此,如果Jim登录,他可以看到类似的东西:你有670分,你的等级是33。

我在MySQL上使用PDO。

我希望这种描述有意义。

1 个答案:

答案 0 :(得分:0)

我的例子是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个用户,按降序ID排序:

鲍勃的排名为3 乔的等级为2 皮特的排名为1

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

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