Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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_Mysql - Fatal编程技术网

Php 将多个MySQL行放入一个字段中

Php 将多个MySQL行放入一个字段中,php,mysql,Php,Mysql,我在stackoverflow尝试了一个类似问题的解决方案,但没有成功。 下面是mysql查询: $sql= "SET group_concat_max_len = 2048"; $sql = "select p.id,p.name,p.logo,p.short_description, GROUP_CONCAT(c.category_name SEPARATOR ', ') from eshop p, eshop_cat c GROUP BY p.id"; 我不明白这个查询出了什么问题

我在stackoverflow尝试了一个类似问题的解决方案,但没有成功。 下面是mysql查询:

$sql= "SET group_concat_max_len = 2048";
$sql = "select p.id,p.name,p.logo,p.short_description,  GROUP_CONCAT(c.category_name SEPARATOR ', ')  from eshop p, eshop_cat c  GROUP BY p.id";
我不明白这个查询出了什么问题,但是c.category是空的。如果我在没有组concat的情况下执行此操作,并使用内部联接,我将正确接收所有数据。但对于同一产品,对于每种产品的每个类别,我都有多行。(例如,如果一个产品有3个类别,那么它会显示该产品3次。)我只希望每个产品有一行,这些类别用逗号分隔 你能帮帮我吗?像这样试试

$sql= "SET group_concat_max_len = 2048";
$sql = "select p.id,p.name,p.logo,p.short_description,  GROUP_CONCAT(c.category_name SEPARATOR ', ') as category_names   from eshop p join  eshop_cat c on
p.id=c.id GROUP BY p.id";

只需放置关系列
p.id=c.id
,它就可以为您工作。

为什么要这样做?您的查询似乎缺少连接条件。
eshop
eshop\u cat
之间的关系是什么?