2013-05-18 34 views
-2

我正在用mysqli從MySQL數據庫檢索數據。我從數據庫中檢索行,數據庫有一個名稱和一個該名稱的編號,我需要先打印最高編號的名稱,然後再打印第二個最高編號的名稱,依此類推。 ..PHP - 如何從MySQL數據庫排序數組

這是我的代碼

while($row = $result->fetch_array(MYSQLI_ASSOC)) {    
    printf ("%s (%s)\n", $row["name"], $row["goals"]); 
} 

這裏是電流輸出

enter image description here

,我需要它以便KaminJack是第一印刷,BregmanMichael被第二印刷,等等

+0

在您的查詢中用戶'ORDER BY'子句 –

回答

3

您的查詢應該是:

SELECT * FROM mytable ORDER BY goals desc

找到你的數據,那麼爲了通過現場goals排序desc(或asc,如果你願意的話)。

+0

謝謝!它的工作,desc做出的好奇心是什麼? – user2109242

+0

http://www.w3schools.com/sql/sql_orderby.asp – joschua011

+1

@ user2109242按降序排序(從最高到最低).. ASC按升序排列(從低到高) – Dinesh

0

首先,您可以在MySQL中簡單地使用ORDRE BY進行排序。

但是,如果你想這樣做在PHP:

while($row = $result->fetch_array(MYSQLI_ASSOC)) { 
    $result[$row["name"]] = $row["goals"]; 
} 
arsort($result); 

http://www.php.net/manual/en/function.arsort.php

1

要在回答進一步完善,你應該兩列順序你有相同數量的一些名字:HidiJack (0)和JainAJesh(0)。

SELECT * FROM mytable ORDER BY goals desc, name asc; 

這將按數字順序排列,然後按名稱按字母順序排列。

如果可以的話,或者更好,使數字成爲索引,以免重複。

+0

對我的答案有很大的改進! +1 – Jared