2011-11-09 22 views
2

我的問題是我需要返回每個'game_id'列表,其中'user_id'位於'score'的前三位以及他的位置。 我的MySQL表如下:在mysql中爲用戶獲取前三名的結果

pk_hiscore_id 
game_id 
user_id 
score 

我將如何做到這一點?

+0

這可以通過使用聚合函數查詢數據庫來完成,參見http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html – hakre

+0

可能的重複[How to sort and添加我的數據庫記錄?](http://stackoverflow.com/questions/8050213/how-to-sort-and-add-my-database-record) – hakre

+0

評分前三名和user_id之間的關係是什麼?你不想要返回前三名的結果(按照ASC和LIMIT 0,3排序) –

回答

0

使用此查詢和mysql_fetch_assoc結果:

SELECT * FROM `table_name` ORDER BY `score` DESC LIMIT 0,3 

然後,遍歷結果數組是這樣的:

// Assume that $array is the array you loaded the query result into. 

for ($position = 1; $position <= 3; $position ++) 
{ 
    $game_id = $array[$i-1]["game_id"]; 

    echo "Game ID: " . $game_id . "\n"; 
    echo "User Position: " . $position; 
} 

除非我正確理解你,應該給你的信息,你想。