#php #mysql #arrays #json
#php #mysql #массивы #json
Вопрос:
Мой текущий вывод моего PHP-скрипта выглядит следующим образом:
[
{
"id": "1087",
"name": "Abhishek Saini",
"email": "info@gmail.com",
"gender": "male"
},
{
"id": "1088",
"name": "Gourav",
"email": "test@gmail.com",
"gender": "male"
}
]
но я хочу, чтобы у него был корневой объект «users:» (или как бы он ни назывался):
{
"users": [
{
"id": "1087",
"name": "Abhishek Saini",
"email": "info@gmail.com",
"gender": "male"
},
{
"id": "1088",
"name": "Gourav",
"email": "test@gmail.com",
"gender": "male"
}
]
}
Я действительно не знаю, как этого добиться, потому что многое из того, что я видел в Интернете, сильно отличается от моего php-скрипта.
Я думаю, что это всего лишь небольшое изменение, я не хочу переписывать весь свой скрипт.
Вот как выглядит мой php-скрипт:
<?php
...
$conn = new mysqli($servername, $username, $password, $dbName);
if(!$conn){
die("Connection Failed. ". mysqli_connect_error());
}else{
echo "Connection Succeeded";
}
$sql = "SELECT * FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$result = $conn->query($sql);
$result_code .= "found lines - ";
while($row = $result->fetch_assoc()) {
$json[$row["id"]] = $row["id"];
$json[$row["name"]] = $row["name"];
$json[$row["email"]] = $row["email"];
$json[$row["gender"]] = $row["gender"];
}
} else {
$result_code .= "no rows in db! - ";
}
echo json_encode($json);
?>
Какую строку я должен добавить, чтобы она дала мне корень «пользователей»?
Комментарии:
1. У вас есть ответы или в ваших заданиях
$json["users"][$row["id"]] =
Ответ №1:
Просто оберните существующие данные в ассоциативный массив:
$json = array('users' => $json);
echo json_encode($json);
Вывод:
{
"users": [
{
"id": "1087",
"name": "Abhishek Saini",
"email": "info@gmail.com",
"gender": "male"
},
{
"id": "1088",
"name": "Gourav",
"email": "test@gmail.com",
"gender": "male"
}
]
}
Ответ №2:
Вы должны присвоить свой результат users
ключу. Незадолго до echo json_encode($json)
этого просто добавьте $json = ['users' => $json]
.