Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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左连接语句吗?它';It’没有返回我想要的所有数据_Php_Mysql - Fatal编程技术网

Php 有人能看一下这个MySQL左连接语句吗?它';It’没有返回我想要的所有数据

Php 有人能看一下这个MySQL左连接语句吗?它';It’没有返回我想要的所有数据,php,mysql,Php,Mysql,我正在创建一个项目网站,它是视频游戏的基本分类广告。目前我有两个表,类别和分类 分类广告表中的行: id(主键) 头衔 内容 接触 日期 类别(FK) 类别表中的行: id(主键) 名字 我希望它返回每个类别(目前有3-xbox,playstation,wii)和每个类别中的广告数量(目前每个类别中有1个) 我遇到的问题是,它只返回一个类别(第一个类别是xbox)并显示“3个广告”(所有类别的广告总数) 我相信这个解决方案很简单,我只需要另一双眼睛就可以了。提前谢谢!我正在使用的PHP函数发

我正在创建一个项目网站,它是视频游戏的基本分类广告。目前我有两个表,类别和分类


分类广告表中的行:

id(主键)

头衔

内容

接触

日期

类别(FK)

类别表中的行:

id(主键)

名字


我希望它返回每个类别(目前有3-xbox,playstation,wii)和每个类别中的广告数量(目前每个类别中有1个)

我遇到的问题是,它只返回一个类别(第一个类别是xbox)并显示“3个广告”(所有类别的广告总数)

我相信这个解决方案很简单,我只需要另一双眼睛就可以了。提前谢谢!我正在使用的PHP函数发布如下:

function list_count()
{
   $q="SELECT COUNT(tA.id) as classifieds, tC.name as name, tC.id as id
   FROM categories as tC LEFT JOIN classifieds as tA ON tA.categories_id=tC.id
   ORDER BY tC.name";
   $result=mysql_query($q);
   $cats=array();

   while($cat=mysql_fetch_array($result)) {$cats[]=$cat;}
   return $cats;
}

如果在select中使用count,则只返回一行

function list_count()
{
   $q="SELECT tC.name as name, tC.id as id
   FROM categories as tC LEFT JOIN classifieds as tA ON tA.categories_id=tC.id
   ORDER BY tC.name";
   $result=mysql_query($q);
   $cats=array();

   $numberOfRows = mysql_num_rows($result);

   while($cat=mysql_fetch_array($result)) {$cats[]=$cat;}
   return $cats;
}
您可以使用
mysql\u num\u rows
获取返回的行数

function list_count()
{
   $q="SELECT tC.name as name, tC.id as id
   FROM categories as tC LEFT JOIN classifieds as tA ON tA.categories_id=tC.id
   ORDER BY tC.name";
   $result=mysql_query($q);
   $cats=array();

   $numberOfRows = mysql_num_rows($result);

   while($cat=mysql_fetch_array($result)) {$cats[]=$cat;}
   return $cats;
}

如果在select中使用count,则只返回一行

function list_count()
{
   $q="SELECT tC.name as name, tC.id as id
   FROM categories as tC LEFT JOIN classifieds as tA ON tA.categories_id=tC.id
   ORDER BY tC.name";
   $result=mysql_query($q);
   $cats=array();

   $numberOfRows = mysql_num_rows($result);

   while($cat=mysql_fetch_array($result)) {$cats[]=$cat;}
   return $cats;
}
您可以使用
mysql\u num\u rows
获取返回的行数

function list_count()
{
   $q="SELECT tC.name as name, tC.id as id
   FROM categories as tC LEFT JOIN classifieds as tA ON tA.categories_id=tC.id
   ORDER BY tC.name";
   $result=mysql_query($q);
   $cats=array();

   $numberOfRows = mysql_num_rows($result);

   while($cat=mysql_fetch_array($result)) {$cats[]=$cat;}
   return $cats;
}

使用聚合(如
count
)时,如果希望返回多个结果,则需要提供一个
分组依据

SELECT COUNT(tA.id) as classifieds, tC.name as name, tC.id as id
FROM categories as tC LEFT JOIN classifieds as tA ON tA.categories_id=tC.id
GROUP BY tC.name, tC.id
ORDER BY tC.name

这将返回每个类别(id/名称)和分类的计数。

当使用聚合(如
count
)时,如果要返回多个结果,则需要提供一个
分组依据

SELECT COUNT(tA.id) as classifieds, tC.name as name, tC.id as id
FROM categories as tC LEFT JOIN classifieds as tA ON tA.categories_id=tC.id
GROUP BY tC.name, tC.id
ORDER BY tC.name

这将返回每个类别(id/名称)以及分类的数量。

就是这样!非常感谢你!就这样!非常感谢你!看来我只是需要一个小组。见上面的斯盖德斯的回答,这对我很有效。谢谢你的帮助!看来我只是需要一个小组。见上面的斯盖德斯的回答,这对我很有效。谢谢你的帮助!