我有一个MySQL数据库,其中包含一个名为 subm_items
的表该表包含以下列(item_id,score)
E.g。
+---------+-------+
| item_id | score |
+---------+-------+
| 1 | 20 |
| 2 | 30 |
| 3 | 5 |
| 4 | 10 |
| 5 | 80 |
+---------+-------+
我希望能够预先形成一个查询(并在PHP中显示结果),该查询根据项目的得分确定条目的“排名”或“位置”。所有其他项目的得分。
例如,如果我传递item_id'5'(得分为80),则应返回等级1。
如果我传递item_id'3'(得分为5),则应该返回5级。
重要提示:如果有人愿意不仅向我提供MySQL查询,而且如何在PHP中显示查询结果(使用变量)例如)这将是伟大的!我在其他帖子中遇到过这个问题,但没有人提供如何在PHP中实际使用和显示查询结果。
谢谢!
答案 0 :(得分:5)
好吧,如果你只是想显示排名表,你可以这样做:
$sql = mysql_query( "SELECT * FROM `subm_items` ORDER BY `score` DESC");
$i = 0;
while($row = mysql_fetch_assoc($sql)) {
$i++;
echo "Rank ".$i.": ID#".$row['item_id']." - Score: ".$row['score']."<br />\n";
}
如果你想在MySQL中计算排名,你需要这样的东西:
SET @rank=0;
SELECT (@rank:=@rank+1) as `rank`, `item_id`, `score` FROM `subm_items` ORDER BY `score` DESC
但IMO在PHP中使用计数器更容易。