如何使用php脚本从MySQL数据库中获取数据到嵌套的JSON数组?

时间:2018-03-16 05:49:36

标签: php mysql json

我能够使用php脚本从MySQL获取数据到单个JSON数组,但我不知道如何从数据库中获取多个列数据到嵌套的JSON数组。请帮我理解这一点。

此php代码适用于将数据提取到单个JSON数组

<?php
require "conn.php";
$sql ="select * from upcomingevent_banner";
$result = mysqli_query($conn,$sql);

$response = array();
while ($row = mysqli_fetch_array($result))
{
    array_push($response,array("image"=>$row[1]));
}

echo json_encode(array("server_response"=>$response));
$conn->close();

?>

我想要以下类型的JSON数组,我需要使用哪些PHP代码?

{
  "data": [
    {
      "title": "Dance",
      "section": [
        {
          "name": "kids dancing in school",
          "image": "http://images1.com"
        },
        {
          "name": "Bharatanattyam",
          "image": "http://image2.com
        },

      ]
    },
    {
      "title": "Music",
      "section": [
        {
          "name": "keyboard player",
          "image": "image3.com"
        },
        {
          "name": "you gotta do that",
          "image": "https://image4.com"
        },

      ]
    }
]
}

1 个答案:

答案 0 :(得分:1)

您需要构建适当的数组,然后您可以使用json_encode()将其转换为JSON。产生样本JSON的数组是这样的:

echo json_encode(array(
  "data"=>array(
    array(
      "title"=>"Dance",
      "section"=>array(
        array(
          "name"=>"kids dancing in school",
          "image"=>"http://images1.com",
        ),
        array(
          "name"=>"Bharatanattyam",
          "image"=>"http://image2.com",
        ),
      ),
    ),
    array(
      "title"=>"Music",
      "section"=>array(
        array(
          "name"=>"keyboard player",
          "image"=>"image3.com",
        ),
        array(
          "name"=>"you gotta do that",
          "image"=>"http://image4.com",
        ),
      ),
    ),
  ),
));

注意:您无法从单个SQL语句中检索这样的多级数组。您可以做的最好的事是具有命名列的行数组。 section是一个包含两行的数组,每行包含两列。 data也是一个数组行,每行包含两列。

因此,为了获得这个多级数组,你将不得不手动构建它,但是“gimme t codz”是Stack Overflow的主题。因此,请仔细考虑,如果您遇到其他麻烦,请使用代码发布其他问题。