У меня есть запрос MySQLi, который извлекает данные из моей базы данных в формате json. Теперь я хочу изменить результат, чтобы сформировать новый массив с использованием PHP.
$conn = new mysqli("localhost", "root", "", "angular");
$out = array();
$sql = "SELECT * FROM members";
$query = $conn->query($sql);
while($row=$query->fetch_array()){
$out[] = $row;
}
echo json_encode($out);
Результат этого запроса примерно такой:
[
{
"0": "1",
"1": "Neovic",
"2": "Devierte",
"3": "Silay City",
"memid": "1",
"firstname": "Neovic",
"lastname": "Devierte",
"address": "Silay City"
},
{
"0": "2",
"1": "Julyn",
"2": "Divinagracia",
"3": "E.B. Magalona",
"memid": "2",
"firstname": "Julyn",
"lastname": "Divinagracia",
"address": "E.B. Magalona"
},
{
"0": "3",
"1": "Gemalyn",
"2": "Cepe",
"3": "Bohol",
"memid": "3",
"firstname": "Gemalyn",
"lastname": "Cepe",
"address": "Bohol"
},
{
"0": "4",
"1": "Tintin ",
"2": "Demapanag",
"3": "Talisy City",
"memid": "4",
"firstname": "Tintin ",
"lastname": "Demapanag",
"address": "Talisy City"
},
{
"0": "5",
"1": "Tintin ",
"2": "Devierte",
"3": "Silay City",
"memid": "5",
"firstname": "Tintin ",
"lastname": "Devierte",
"address": "Silay City"
}
]
Теперь я хочу получить результат с чем-то вроде этого:
[
firstname: {"Neovic", "Julyn", "Gemalyn", "Tintin", "Tintin"},
lastname: {"Devierte", "Divinagracia", "Cepe", "Demapanag", "Devierte"}
]
Можно ли это сделать в PHP? любая помощь приветствуется.
1. Поскольку вам не нужны все данные, выполните запрос следующим образом:
$sql = "SELECT firstname,lastname FROM members";
2.Измените код цикла, как показано ниже, и вы выполните: -
while($row=$query->fetch_array()){
$out['firstname'][] = $row['firstname'];
$out['lastname'][] = $row['lastname'];
}
Таким образом, полный код должен быть: -
$conn = new mysqli("localhost", "root", "", "angular");
$out = array();
$sql = "SELECT firstname,lastname FROM members";
$query = $conn->query($sql);
while($row=$query->fetch_array()){
$out['firstname'][] = $row['firstname'];
$out['lastname'][] = $row['lastname'];
}
echo json_encode($out);
Вы можете хранить данные в отдельных массивах:
<?php
$firsts = [] ;
$lasts = [] ;
while ($row = $query->fetch_array()) {
$firsts[] = $row['firstname'] ;
$lasts[] = $row['lastname'] ;
}
$out = ['firstname' => $firsts, 'lastname' => $lasts] ;
?>
while
а затем присваивать их окончательному массиву. Вы можете сделать это с одной переменной. проверьте мой ответ один раз
<?php
$i=0;
while ($row = $query->fetch_array())
{
$user[$i]['first_name'] = $row['firstname'] ;
$user[$i]['last_name'] = $row['lastname'] ;
$i++;
}
json_encode($user);
?>
SELECT firstname,lastname FROM members
вместоSELECT *
.