2012-09-26 18 views
0

可能重複:
MYSQL COUNT GROUP BY question計數每個用戶名在一個表中

enter image description here

$query = "SELECT * FROM product_id_1"; 

$result = mysql_query($query); 

while($record = mysql_fetch_array($result)){ 

$array[] = $record['username']; 

$unique_array = array_unique($array); 

} 


foreach($unique_array as $list){ 
    echo $list.'<br/>'; 
} 

問候,

我卡試圖弄清楚如何申請array_count_unique()。原因是我需要找出表格中每個用戶的數量,即出現adam的次數和abcd的出現次數。


UPDATE

這是我根據你們的建議做:

$query = 'SELECT username, COUNT(*) AS username_count FROM product_id_1 GROUP BY username'; 

$result = mysql_query($query); 

while ($record = mysql_fetch_object($result)) { 

    echo $record->username; 

    echo $record->username_count; 
} 
+1

你可以從查詢 – Sednus

+0

請獲取直接,不使用'mysql_ *'功能的新代碼。他們不再被維護,社區已經開始[棄用流程](http://goo.gl/KJveJ)。請參閱[**紅框**](http://goo.gl/GPmFd)?相反,您應該瞭解[準備好的語句](http://goo.gl/vn8zQ)並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能決定,[本文](http://goo.gl/3gqF9)將有助於選擇。如果你關心學習,[這是一本很好的PDO教程](http://goo.gl/vFWnC)。 – PeeHaa

+0

高度浪費的代碼。你不需要在循環的每次迭代中「唯一」你的數組。在獲取數據庫後進行一次唯一的調用會更有效。而更有效率的做法是在數據庫本身進行計數,所以你不會抓取並丟棄所有你不需要的數據。 –

回答

3

這也正是爲什麼我們有RDBMS和SQL:

SELECT COUNT(1) AS username_count, username 
FROM 
    product_id_1 
GROUP BY 
    username 
+0

這是建議我做了什麼: –

+0

我已經改變了我的代碼,謝謝。問題,爲什麼將1傳入COUNT()? –

+0

公約。你可以用'COUNT(*)'如果它讓你感覺更好 - 看http://stackoverflow.com/questions/1221559/count-vs-count1 –

相關問題