Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP MySQL获得前五名的最高结果。?_Php_Sql_Mysql - Fatal编程技术网

PHP MySQL获得前五名的最高结果。?

PHP MySQL获得前五名的最高结果。?,php,sql,mysql,Php,Sql,Mysql,有一个民意调查表,其中有10个类别,我想查看前5名的结果从最高到最低的限制分为5个类别。如何在php和mysql中实现这一点 下面是示例表 类别 身份证 类别名称 投票 身份证 类别识别码 用户id 使用者 身份证 用户名 以下是我的示例查询: $q = mysql_query("SELECT * from categories"); while($data = mysql_fetch_array($q){ $votes = mysql_query("SELECT * from

有一个民意调查表,其中有10个类别,我想查看前5名的结果从最高到最低的限制分为5个类别。如何在php和mysql中实现这一点

下面是示例表

类别
  • 身份证
  • 类别名称
投票
  • 身份证
  • 类别识别码
  • 用户id
使用者
  • 身份证
  • 用户名
以下是我的示例查询:

$q = mysql_query("SELECT * from categories");
while($data = mysql_fetch_array($q){

  $votes = mysql_query("SELECT * from votes where category_id=".$data['id']."");
  $data_vote = mysql_nuw_rows($votes);
  echo $data['category_name']."has".$data_vote."Votes";
}
我希望我的输出是这样的,从一个类别中的最高投票

category1 has 30 votes
category3 has 25 votes
category5 has 23 votes
category2 has 15 votes
category4 has 10 votes
使用:

使用:


该查询应该可以:

select c.category_name, count(v.id) as number_of_votes 
  from CATEGORIES c
left join VOTES v on v.category_id = c.id
    group by c.id
    order by number_of_votes desc
    limit 5

(假设您的投票表主键为“id”

,则查询应执行此操作:

select c.category_name, count(v.id) as number_of_votes 
  from CATEGORIES c
left join VOTES v on v.category_id = c.id
    group by c.id
    order by number_of_votes desc
    limit 5

(假设您的投票表主键是“id”

我更正了一个mysql错误1064-语法错误,因为您在
排序依据
之后有
分组依据
。此外,
计数(v.id)
当一个类别没有任何与之相关联的投票时,它将返回NULL。@OMG。我想一个正确的连接将解决空值问题。否,只需使用(ANSI)或(原生MySQL)将空值转换为零即可我更正了一个mysql错误1064-语法错误,因为您在
排序依据
之后有了
分组依据
。此外,
计数(v.id)
在类别没有任何投票关联时将返回NULL。@OMG。我猜正确的联接将解决空值问题。不,只需要使用(ANSI)将空值转换为零即可或者(原生MySQL)就这样,足够关键了。@Ben:谢谢,我真的很感谢反馈和否决票的撤销。就这样,足够关键了。@Ben:谢谢,我真的很感谢反馈和否决票的撤销。