使用MySQL和PHP计算字段中每个值的数量

时间:2013-04-10 12:56:54

标签: php mysql count

我已多次看到这个问题,但我无法找到如何显示结果。我有一个电影数据库,我想在单个MySQL查询的顶级菜单中计算每种类型的电影,所以我的菜单会显示如下:

Total Movies (300)
Drama (50)
Comedy (75)
Thriller (30)
...and so on...

我在这个网站上发现了一些MySQL查询,但没有人指定如何处理SQL查询后的计数。这样的事可能会奏效:

select genre, count(*) from movies group by genre

但之后如何显示每个值的计数? 非常感谢你!

6 个答案:

答案 0 :(得分:6)

对计数部分进行别名,以便您可以轻松访问列名:

SELECT genre, count(*) AS nb_movies FROM movies GROUP BY genre

然后您可以像$row['nb_movies']一样访问它。

如果没有别名,聚合列将获取生成它的聚合函数调用的名称,因此在您的情况下,它将像$row['count(*)']一样被访问。

答案 1 :(得分:1)

尝试

select genre, count(*) AS total from movies group by genre

使用总数作为例如

的计数
echo $result['total'];

答案 2 :(得分:0)

试试这个,

SELECT genre, count(*) AS total_genre_movies FROM movies GROUP BY genre

现在您可以访问$result['total_genre_movies']

答案 3 :(得分:0)

如果您对count(*)

的结果进行别名,则会更容易
select genre, 
       count(*) as total
  from movies 
 group by genre

然后,当您将结果提取到$row['total']时,您可以$row访问它,其方式与引用$row['genre']完全相同

答案 4 :(得分:0)

   select genre, count(*) as genre_count from movies group by genre

现在您可以访问$ result ['genre_count']

答案 5 :(得分:0)

试试这个,

$result = mysql_query("select genre, count(*) as genre_count from movies group by genre");

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

   $genre       = $row['genre'];
   $genre_count = $row['genre_count'];

}