2013-04-10 67 views
4

我已经多次看到该问题,但无法找到如何显示结果。我有一个电影资料库,我想电影的各个流派的计数我在一个MySQL查询顶部的菜单,所以我的菜单将显示如下:从MySQL和PHP的字段中计算每个值的数量

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

,我发现了一些MySQL查询本网站但没有人指定如何处理SQL查询后的计数。像这样的东西可能会工作:

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

但是我怎么显示计数的每个值之后? 非常感谢!

回答

6

别名计数一部分,所以你有一个方便的列名:

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

那么你就可以访问它像$row['nb_movies']

如果没有别名,聚合列将采用产生它的聚合函数调用的名称,所以在你的情况下它将被访问,如$row['count(*)']

+0

好6个回答几乎相同,每一个,还是不明白这一点,虽然,对不起... :(什么都会给我每个不同类型的计数?如果我用$行显示它['nb_movies'],它不会给我“喜剧”和“惊悚片”的计数和其他所有类型吗?我是否绝对需要做一个WHILE以获得像Ranjith建议的结果? – Andrewww 2013-04-10 13:21:04

+0

是的,你需要循环结果我的意思是你可以创建一个超级复杂的查询来为每个类型/计数提供一个列,但我觉得这很愚蠢,如果你想让所有类型的总和比那个不同的查询或者你需要循环通过任何方式获得每种类型的总数,只要你总能获得总数,就可以将它们加起来。 – prodigitalson 2013-04-10 13:25:06

0

试试这个,

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

现在您可以像$result['total_genre_movies']

0

,如果你很容易别名COUNT(*)的结果

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

然后你就可以访问它$row['total']当您以完全相同的方式将结果存入$row时,您会参考$row['genre']

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

现在您可以像$结果[ 'genre_count']

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']; 

} 
1

尝试

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

使用总作为计数如。

echo $result['total'];