Ich habe wahrscheinlich ein einfaches Problem mit der Erzeugung von JSON-Ausgabe in PHP. Ich verwende den folgenden Code, um die relevanten Daten einer MySQL-Datenbank zu sammeln.Korrektes JSON-Format mit PHP
<?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();
Der Code erzeugt die folgende Ausgabe:
[
{
"title_hu": "Zr\u00ednyi napok s",
"created_at": "2015-08-31 16:26:23"
},
{
"title_hu": "Persona Non Grata 25. sz\u00fclet\u00e9snapi koncert",
"created_at": "2015-08-31 18:12:25"
},
{
"title_hu": "Bek\u00f6lt\u00f6z\u0151s buli",
"created_at": "2015-08-31 18:22:29"
},
{
"title_hu": "as",
"created_at": "2015-08-31 18:29:13"
},
{
"title_hu": "dddd",
"created_at": "2015-08-31 18:29:58"
}
]
Aber für das Werkzeug benutze ich das Format sollte sein:
{
"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"
}
]
}
Ich habe versucht, das Ergebnis in ein anderes Array zu setzen, aber In diesem Fall gibt die JSON-Ausgabe nur das erste Element des Datasets zurück.
Was mache ich falsch?
Können Sie mit '$ Ereignisse versuchen [ 'Ereignisse'] [] = $ row;' innerhalb der Schleife und Vergessen Sie nicht, '$ events ['events']' als Array vor der Schleife zu deklarieren. – prava
so das 'json_encode (array ('events' => $ events), JSON_PRETTY_PRINT);' funktioniert nicht für dich? –