Почему этот код работает?

257
25 октября 2017, 06:53

Я хотел узнать как получить все строки таблицы поочередно в массив и нашел следующее решение:

$q = mysql_query('SELECT * FROM table');
$res = array();
while ($r = mysql_fetch_assoc($q)) {
$res[] = $r;
}
print_r($res);

Однако здесь я вижу лишь что мы: 1 получаем массив строк из бд, 2 начинаем считывать строку массива циклом while 3 ??? 4 заканчивается считывание и на выходе имеется готовый массив.

Почему вместо бесконечного считывания одной строки код переходит автоматом к следующим, несмотря на то что счётчика нету? Это аналог foreach? Как это работает?

Answer 1

Документация

Возвращает ассоциативный массив, соответствующий полученному ряду и сдвигает вперед внутренний указатель результата.

Также обратите внимание, что расширение mysql уже очень давно не поддерживается, а в PHP 7 вообще удалено. Используйте PDO или mysqli

READ ALSO
Переход на новую строку

Переход на новую строку

Допустим есть файл где храниться ID переписок пользователя построчно, но я не могу использовать константу PHPEOL для перехода на новую строку...

381
Привести дату-время к понятному виду

Привести дату-время к понятному виду

Помогите расшифровать дату встречал в апи такой массив:

243
Вывести переменную по частям [дубликат]

Вывести переменную по частям [дубликат]

На данный вопрос уже ответили:

185