目前在遊戲桌以下信息查詢查找用戶排名在遊戲數據庫
ID Name XP
1 Bob 11
2 Jim 120
3 Dan 56
4 Oli 32
我想拉例如單個用戶時,發現軍銜。例如,我希望能夠將'Jim'作爲等級編號1,將'Bob'等級編號爲4。
我有這個查詢,但它似乎很亂。
SELECT COUNT(*)+2 FROM game WHERE xp > (SELECT xp FROM game WHERE id = '$id')
目前在遊戲桌以下信息查詢查找用戶排名在遊戲數據庫
ID Name XP
1 Bob 11
2 Jim 120
3 Dan 56
4 Oli 32
我想拉例如單個用戶時,發現軍銜。例如,我希望能夠將'Jim'作爲等級編號1,將'Bob'等級編號爲4。
我有這個查詢,但它似乎很亂。
SELECT COUNT(*)+2 FROM game WHERE xp > (SELECT xp FROM game WHERE id = '$id')
您可能想要填充數組以找到其「排名」。如果您只是想最高:
"SELECT * FROM game WHERE xp = MAX(xp)"
如果你想通過自己的排名在XP訂購了表,我建議使用填充數據的數組,因此您可以通過XP和排序它然後相應地提供它。我還使用了$ DB類在我的劇本,但它應該是有意義:
while($data = $db->sql_query("SELECT * FROM games ORDER BY xp DESC"){
$rank++;
$users[]['name'] = $data['name'];
$users[]['xp'] = $data['xp'];
$users[]['rank'] = $rank;
}
echo '<table><tr><td>Rank</td><td>Name</td><td>XP</td></tr>';
foreach($users as $user){
echo'<tr><td>'.$user['rank'].'</td><td>'.$user['name'].'</td><td>'.$user['xp'].'</td></tr>';
}
echo '</table>';
在我的經驗,它一直是容易應付的信息,如果你只是填充數組。在我缺少的sql查詢語法中可能會有一些技巧,但它會完成工作。
你的查詢看起來不錯,但爲什麼'+ 2'而不是'+ 1'? – Quassnoi