В результате я пытаюсь получить одну строку JSON из моей базы данных, но база данных возвращает несколько строк данных, которые при кодировании JSON не соответствуют правильному форматированию.
Мой текущий код PHP
$conn = [omitted];
$sql = [omitted];
$result = $conn->query($sql); //this query has been proven to work
if ($result->num_rows > 0) {
$rows = [];
while($row = $result->fetch_assoc()) {
$row[] = array_merge($row,$rows);
}
echo json_encode($rows);
} else {
echo "0";
}
Но этот код повторяет $rows
массив, прежде чем он был объединен с $row
массивы.
Текущий результат:
[]
Требуемый результат:
[{"id":"1","team_name":"[omitted]","has_finished":"0"},{"id":"2","team_name":"[omitted]","has_finished":"0"},{"id":"3","team_name":"[omitted]","has_finished":"0"},{"id":"4","team_name":"[omitted]","has_finished":"0"},{"id":"5","team_name":"[omitted]","has_finished":"0"},{"id":"6","team_name":"[omitted]","has_finished":"0"},{"id":"7","team_name":"[omitted]","has_finished":"0"}]
Вы никогда не назначаете какие-либо данные в свой массив строк. Чтобы назначить каждую строку в массиве, вы хотите это для вашего цикла.
while($row = $result->fetch_assoc()) {
$rows[] = $row;
}
Других решений пока нет …