正确的JSON格式与PHP

正确的JSON格式与PHP,php,mysql,json,mysqli,Php,Mysql,Json,Mysqli,在PHP中生成正确的JSON输出可能有一个简单的问题。我使用以下代码从mysql数据库收集相关数据 <?php header('Content-Type: application/json'); $mysqli = new mysqli("localhost", "root", "", "civitas"); if (!$mysqli->set_charset("utf8")) { printf("Error loading character set utf8: %

在PHP中生成正确的JSON输出可能有一个简单的问题。我使用以下代码从mysql数据库收集相关数据

<?php
header('Content-Type: application/json');
$mysqli = new mysqli("localhost", "root", "", "civitas");
if (!$mysqli->set_charset("utf8")) {
        printf("Error loading character set utf8: %s\n", $mysqli->error);
        exit();
 }
$events = array();

if ($result = $mysqli->query("SELECT title_hu FROM `events`")) {
    while ($row = $result->fetch_assoc()) {
        $events[] = $row;
    }
    echo json_encode($events, JSON_PRETTY_PRINT);
}
$result->close();
$mysqli->close();
但对于我使用的工具,格式应为:

{
    "events":[{
            "title_hu":"Teszt hír",
            "content":" lorembalblalba ",
            "created_at":"2015-08-31 18:29:58"
        },
        {
            "title_hu":"Teszt hír2",
            "content":" lorembalblalba ",
            "created_at":"2015-08-31 18:29:58"
        },
        {
            "title_hu":"Teszt hír3",
            "content":" lorembalblalba ",
            "created_at":"2015-08-31 18:29:58"
        }
    ]
}
我试图将结果放入另一个数组,但在这种情况下,JSON输出只返回数据集的第一项


我做错了什么?

首先将查询更改为

<?php
header('Content-Type: application/json');
$mysqli = new mysqli("localhost", "root", "", "civitas");
if (!$mysqli->set_charset("utf8")) {
        printf("Error loading character set utf8: %s\n", $mysqli->error);
        exit();
}
$events = array('events'=>array());

if ($result = $mysqli->query("SELECT title_hu, content, created_at FROM `events`")) {
    while ($row = $result->fetch_assoc()) {
        $events['events'][] = $row;
    }
    echo json_encode($events, JSON_PRETTY_PRINT);
}
$result->close();
$mysqli->close();
SELECT title_hu,content,created_at FROM `events`
和用于创建JSON使用

$rows = array();// define array
$events = array();// define array
while ($row = $result->fetch_assoc()) {
        $events[] = $row;// assign table data to array
    }
$rows['events'] = $events;// assign your table data and array to an empty array
echo json_encode($rows, JSON_PRETTY_PRINT);// your final JSON

您可以尝试使用
$events['events'][]=$row在循环中,不要忘记在循环之前将
$events['events']
声明为数组不适合你?
$rows = array();// define array
$events = array();// define array
while ($row = $result->fetch_assoc()) {
        $events[] = $row;// assign table data to array
    }
$rows['events'] = $events;// assign your table data and array to an empty array
echo json_encode($rows, JSON_PRETTY_PRINT);// your final JSON