我正在创建一个排行榜,其中将显示以下内容:排名,用户名,分数创建排行榜,我将如何去显示排名/位置?
我目前有表格,它将显示用户名和分数从mysql表中的数据,我只是想知道我该怎么去关于为每个用户显示排名,编号1是具有最高分数的用户然后下降。
谢谢!
我正在创建一个排行榜,其中将显示以下内容:排名,用户名,分数创建排行榜,我将如何去显示排名/位置?
我目前有表格,它将显示用户名和分数从mysql表中的数据,我只是想知道我该怎么去关于为每个用户显示排名,编号1是具有最高分数的用户然后下降。
谢谢!
我推荐阅读PHP/MySQL。
HTML标题:打开表,创建你的头
<table>
<tr>
<td>Rank</td>
<td>User</td>
<td>Score</td>
</tr>
PHP:动态生成每个用户
<?php
$result = mysql_query("SELECT user, score FROM leaderboard ORDER BY score DESC");
$rank = 1;
if (mysql_num_rows($result)) {
while ($row = mysql_fetch_assoc($result)) {
echo "<td>{$rank}</td>
<td>{$row['user']}</td>
<td>{$row['score']}</td>";
$rank++;
}
}
?>
HTML页脚行:需要关闭表
</table>
你需要 1)让你试图排名 2)用“更好的”计数的记录数纪录的成绩分数(“更好”取决于你的游戏类型。篮球,分数越高越好。高尔夫球,较低的分数都比较好。)
所以,像
select records in order
for each record
score = record.score
rank = select count(*) + 1 from table where score_column is better than score
display data
end for
的问题是,对数据的任何显著量执行COUNT(*)是缓慢的。但是你可以看到,一旦你有了第一个两个不同分数的排名,你可以在没有查询的情况下确定代码中剩余行的排名。但请记住:您可能需要考虑关系。
'SELECT user,score FROM leaderboard ORDER BY score DESC' –
嗨,我已经有我想让它显示在排行榜上的排名/位置,例如:http://i.imgur.com /ed9Zx.png(快速在Excel中完成) – Daniel