Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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 创建json,其中包含GROUPBY查询结果中的所有标题_Php_Group By_Group Concat - Fatal编程技术网

Php 创建json,其中包含GROUPBY查询结果中的所有标题

Php 创建json,其中包含GROUPBY查询结果中的所有标题,php,group-by,group-concat,Php,Group By,Group Concat,我正在尝试做一些非常简单的事情,但无法让它工作。我在这里看到了一些复杂的相似的线索,但我无法绕过它们 我简化了我的问题,所以我只有一个表和两行。产品和名称。产品有相似的名称,但标题并没有,我想用json获取它,但我在获取所有标题的过程中遇到了困难。这是我的密码 $query = mysqli_query($con, "SELECT* FROM mylist GROUP BY products"); while($row = $query->fetch_array()){ echo $row

我正在尝试做一些非常简单的事情,但无法让它工作。我在这里看到了一些复杂的相似的线索,但我无法绕过它们

我简化了我的问题,所以我只有一个表和两行。产品和名称。产品有相似的名称,但标题并没有,我想用json获取它,但我在获取所有标题的过程中遇到了困难。这是我的密码

$query = mysqli_query($con, "SELECT* FROM mylist GROUP BY products");
while($row = $query->fetch_array()){
echo $row['products'].' - '; 
echo $row['title'];
echo "<br>";
但我期待着这个

prod1 - title 4, title 1
prod2 - title 2
prod3 - title 3
然后用json编码

更新: 所以我可以得到这样的JSON

{"prod1":["title 4,title 1"],"prod2":["title 2"],"prod3":["title 3"]}
{
"prodlist": {
    "prod1": [
        {
            "title": "title5"
        },
        {
            "title": "title1"
        }
    ],
    "prod2": [
        {
            "title": "title5"
        }
    ]
  }
}
SELECT products, GROUP_CONCAT(title ORDER BY products ASC SEPARATOR ', ') AS prods 
FROM mylist  
GROUP BY products
使用此代码

$request = <<< EOT
SELECT products, GROUP_CONCAT(title) AS title
FROM mylist
GROUP BY products
ORDER BY products ASC;
EOT;

$rows = $con->query($request)->fetchAll(PDO::FETCH_ASSOC);
$items= array();
foreach ($rows as $row){
    $days[$row['products']]= explode(",", $row['title']);
}
var_dump($items);
echo json_encode($items);
你需要这样的团队合作

{"prod1":["title 4,title 1"],"prod2":["title 2"],"prod3":["title 3"]}
{
"prodlist": {
    "prod1": [
        {
            "title": "title5"
        },
        {
            "title": "title1"
        }
    ],
    "prod2": [
        {
            "title": "title5"
        }
    ]
  }
}
SELECT products, GROUP_CONCAT(title ORDER BY products ASC SEPARATOR ', ') AS prods 
FROM mylist  
GROUP BY products

下面是完整的SQL文档:

尝试使用GROUP_CONCAT。是的,谢谢,但不确定这是否是最好的方法,也不确定如何添加另一行$query=mysqli_query$con,从mylist GROUP BY products中选择products,GROUP_Concatittleas title;是的,这是可行的,但它仅限于两行,我如何添加更多行,如价格、url、说明等选择产品、组目录、价格、url按产品排序ASC分隔符“,”作为mylist GROUP BY products的产品Prod1-title 46、title 13 prod2-title 24 prod3-title 35,但预期与此Prod1-title 4,6类似;标题1,3;prod2-标题2,4;prod3-标题3,5;