mysqli_fetch_array возвращает только первую строку из таблицы в базе данных
Хочу таблицу из mysql перевести в php массив:
$sql = "SELECT uuid, name, code, sell_price, admission_price, quantity, articleNumber, parentUuid FROM Myshoes";
$mydb = mysqli_query($conn, $sql);
$row = $mydb->fetch_array(MYSQLI_ASSOC);
printf("%s (%s)\n", $row["uuid"], $row["name"]);
возращает первую запись из таблицы Myshoes
сама таблица содержит более 6000 строк и на запрос print_r($mydb)
возращает
mysqli_result Object ( [current_field] => 0 [field_count] => 8 [lengths] => [num_rows] => 6212 [type] => 0 )
Через циклы все работает хорошо, но не могу разобраться почему все - таки выводиться одна строка. Может есть какой-то изящный способ решения проблемы
Ответы (1 шт):
В этом и смысл fetch_array, что метод выбирает следующую строку из набора. И чтобы все строки достать - надо использовать цикл. Метод говорит сам за себя и не ясно почему от него ожидается другое поведение.
Если хочется сразу всё достать скопом, то можно использовать fetch_all
P.S. За раз вытаскивать 6000 записей не очень хорошо. Стоит воспользоваться пагинацией и ограничением выбора записей. через LIMIT. Иначе сервер умрёт и пользователи будут ждать долго.