【问题标题】:JSON Multi-dimensional Array using mysql_fetch_assoc使用 mysql_fetch_assoc 的 JSON 多维数组
【发布时间】:2016-05-15 00:55:45
【问题描述】:

我的 Mysqli 更新了查询并输出了这个

SELECT milestone.id, milestone.name, milestone.date, milestone.location, milestone.story_body, milestone.short_link, milestone.created_at, 
GROUP_CONCAT(images.path) as path , images.update_type
FROM milestone
INNER JOIN images ON milestone.id = images.update_id
WHERE milestone.business_id =  '1' && milestone.status =  '1' && images.update_type =  '3'
GROUP BY milestone.id

如何使用上述查询形成 JSON 对象?

我尝试了以下方法,但没有给出任何结果

$result_array = array();
while($row = mysql_fetch_assoc($result))
{
    $result_array[] = $row;

}

我想要这样的东西 -

[  
       {  
          "id":"4",
          "name":"2nd anniversary",
          "date":"2015-12-17",
          "location":"Mumbai",
          "story_body":"Gzjjs jdk djks jdks jdkd jx djdb djd JD djbd djdj d",
          "short_link":"izWfs",
          "created_at":"2015-12-11 03:49:52",
          "path":
                 [                       
                   {"\/SupportData\/ImpalzB2B\/uploads\/90294930451448437444826.jpg"},
                   {"\/SupportData\/ImpalzB2B\/uploads\/90294930451449758248579.jpg"}
                 ],
          "update_type":"3"
       },       
       {  
          "id":"7",
          "name":"#1styearAnniversary",
          "date":"2016-01-20",
          "location":"Mumbai",
          "story_body":"Bsjsj jdkdk djdkdk dkdkf kdkf dkfj fjfj fjfkjdd djkd",
          "short_link":"FHXh0",
          "created_at":"2016-01-20 23:10:54",
          "path":"\/SupportData\/ImpalzB2B\/uploads\/11453356652175.jpg",
          "update_type":"3"
       }
    ] 

注意:我知道 PHP 7 中没有使用 Mysql。我需要用 PDO 和 Mysqli 替换它,所以请忽略这个错误。我正在做同样的事情,同时我正面临这个查询。

【问题讨论】:

  • 更新了我的查询。 @A-2-A
  • 'GROUP_CONCAT(path)' 和 GROUP BY id 可以提供帮助。
  • @Sougata 我已经更新了我的查询和结果,我现在怎样才能得到结果?

标签: php mysql arrays json mysqli


【解决方案1】:

你现在可以这样做了 -

$result_array = array();
while($row = mysql_fetch_assoc($result))
{
    $temp= explode(',', $row['path']); // explode by ,
    if(count($temp) > 1) { // More than one element then assign
        $row['path']= $temp;
    } 
    $result_array[] = $row;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    • 2012-03-07
    • 2013-10-27
    相关资源
    最近更新 更多