我正在創建一個排行榜,其中將顯示以下內容:排名,用戶名,分數創建排行榜,我將如何去顯示排名/位置?
我目前有表格,它將顯示用戶名和分數從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