PDO и json. Как сделать всё в один массив?
Есть код, который выводит данные из таблицы servers:
include 'mysql.php';
if ($_GET['id'] != "") {
foreach($dbh->query("SELECT * FROM `servers` WHERE `ownerid` = '{$_GET['id']}'") as $row) {
$servers = $row['ServerName'];
$array = array("Servers" => ["$servers"]);
$json = json_encode($array, JSON_UNESCAPED_UNICODE);
echo $json;
}
}
При выполнении которого выводится следующее:
{"Servers":["ServerName1"]}{"Servers":["ServerName2"]}
Я хочу, чтобы у меня это выводилось так:
{"Servers":["ServerName1","ServerName2"]}
Ответы (1 шт):
Автор решения: Pashok
→ Ссылка
По идее так должно сработать. Вначале, перед циклом, мы задаём пустой массив с ключом Servers, в цикле пробегаемся по элементам из ответа и заполняем этот пустой массив, после чего выводим вне цикла результат.
include 'mysql.php';
if ($_GET['id'] != "") {
$servers['Servers'] = [];
foreach($dbh->query("SELECT * FROM `servers` WHERE `ownerid` = '{$_GET['id']}'") as $row) {
$servers['Servers'][] = $row['ServerName'];
}
$json = json_encode($servers, JSON_UNESCAPED_UNICODE);
echo $json;
}