Мой запрос выбирает все строки, соответствующие определенным критериям, но я столкнулся с проблемой при использовании для этого fetch_assoc, я получаю только одну строку.
Это мой код:
$stmt = $conn->prepare("SELECT filename, comment, action FROM files WHERE belongsto = ?");
$stmt->bind_param("s", $_POST['case_identifer']);
$stmt->execute();
$result = $stmt->get_result();
echo json_encode(array(($result->fetch_assoc())));
$stmt->close();
$conn->close();
Мне нужно превратить функцию fetch_assoc в цикл, чтобы я получал ВСЕ результаты в JSON, но я очень не уверен, как это сделать, был бы признателен за любую помощь или советы.
Просто используйте цикл while для записи строк в массив, а затем json_encode. Так что замените эту строку:
echo json_encode(array(($result->fetch_assoc())));
с этим циклом:
$output = array();
while ($row = $result->fetch_assoc()) {
$output[] = $row;
}
echo json_encode($output);
Спасибо, я просто запутался в том, что здесь. Что мне заменить для этого в моем коде?
@ zugo123456789 Я обновил свой ответ, чтобы было понятнее, что делать.
страница руководства для функции, о которой вы говорите, уже имеет пример выполнения именно этого! Он не кодирует его в JSON (но это отдельный шаг, который вы делаете, когда будете готовы вывести данные), но он показывает цикл, о котором вы говорите. 1000 других примеров mysqli в Интернете также покажут то же самое.