Я пытаюсь получить результаты запроса в массив PHP, запрос действительно прост и возвращает ровно 94 строки, процесс отлично работает, пока он не достигнет определенного количества результатов, я обнаружил это методом проб и ошибок, Я думал, что это проблема с данными, но на самом деле это проблема с PHP, потому что, если я запускаю запрос, массив опустеет, но если я поставлю LIMIT в запросе, процесс будет работать нормально, магическое число - 37, после чего массив не будет получать больше строк и ничего не отображает, это то, что я делаю:массивы опустошают после получения определенного количества результатов из базы данных?
PD. проблема, похоже, связана с полем , потому что, если я использую только поле id, я могу получить 94 строки без проблем.
$query = "SELECT Name AS DisplayText, id AS Value FROM branches ORDER BY DisplayText ASC LIMIT 37;";
$conn = new mysqli($host, $username, $password, $database);
$res = $conn->query($query);
$rows= array();
while ($row = mysqli_fetch_array($res, MYSQLI_ASSOC)) {
$array['DisplayText'] = $row['DisplayText'];
$array['Value'] = $row['Value'];
array_push($rows,$array);
}
print json_encode($rows);
этот способ работает, но я ограничен до 37 результатов из-за предела запроса, мне нужно 94 результаты, но если я удалить ограничение я не получаю ничего
другой путь, когда я пытался с тем же результат:
$query = "SELECT Name AS DisplayText, id AS Value FROM branches ORDER BY DisplayText ASC LIMIT 37;";
$conn = new mysqli($host, $username, $password, $database);
$res = $conn->query($query);
$rows= array();//rows
while ($row= mysqli_fetch_array($res, MYSQLI_ASSOC)) {
$rows[] = $row;
}
print json_encode($rows);
Проблема должна быть в вашем SQL, удаление LIMIT никогда не прекращает возвращать строки. Если вы положили 'echo mysqli_error ($ conn);' в конце, он говорит что-нибудь о каких-либо ошибках? Кроме того, поставьте 'error_reporting (E_ALL);' в верхней части файла, чтобы получить все предупреждения и ошибки, выводимые на веб-страницу для отладки. – Kalkran
@Kalkran да, я пробовал все методы отладки, которые я знаю, сначала я думал, что это проблема с БД, и я проверял ошибки везде, я имею в виду, если я попробую любой другой запрос в этой таблице или других таблицах, исключая ** Имя ** поле все работает без проблем – CMP
Итак, вы не получаете _any_ ошибок, но не получаете _any_ данных? Выполняются ли запросы с «LIMIT» из 38? 39? 50, 60? 94? – Kalkran