2011-09-25 67 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