2011-09-25 66 views
1

我有一個表在我的MySQL數據庫,看起來像下面這樣:PHP回聲類別名稱

id   | category |  title 
    1   |  blue |  title1 
    2   | green |  title2 
    3   |  red  |  title3 
    4   | purple |  title4 
    5   |  red  |  title5 
    1   |  blue |  title1 
    2   | green |  title2 
    3   |  blue |  title3 
    4   |  blue |  title4 
    5   |  red  |  title5 

..... 

我想回應我的頁面上的類別名稱,然後指望有多少項有每個類別。

目標是這樣的:

blue(4) 
green(2) 
red(3) 
purple(1) 

我試圖呼應的類別,但我剛剛收到重複的一個長長的清單。任何人都可以指引我正確的方向嗎?

回答

3

不需要混淆關聯數組。您可以使用GROUP BY和COUNT輕鬆地在SQL中執行此操作。有關示例,請參閱MySQL手冊。

+0

MySQL GROUP BY和COUNT是要走的路。見下文。 Working code: <?php $ query =「SELECT category,count(*)AS col_num FROM news GROUP BY category ASC」; $ result = mysql_query($ query); ($ key = $ colour_num)$ name = $($ key = $ row)$ while($ row = mysql_fetch_array($ result,MYSQL_ASSOC)){ while(list($ key,$ value)= each($ row)) { 值; else $ count [$ name] = $ value; } } while(list($ key,$ value)= each($ count))echo「$ key($ value)
」; ?> – user961644

2

我不會給你代碼,因爲你應該自己寫這個,因爲這聽起來像是作業。

這裏是你的PHP腳本可以看起來像一個基本思想:

  1. 從數據庫中選擇所有行。
  2. 創建一個關聯數組,其中類別名稱是關鍵字,出現次數是該值。
  3. 迭代從查詢中得到的表數據,併爲每個類別遞增數組中的相應計數。

祝你好運,並隨時提出另一個問題,一旦你有一些代碼編寫。

+0

感謝您的幫助。家庭作業的確,至少我知道現在從哪裏開始。隊友的歡呼聲。 – user961644