while (list($task_id, $parent_id, $task) = mysqli_fetch_array($r, MYSQLI_NUM))
ответ
это цикл через результирующего набора, с помощью сжатого преобразования из результата MySQL строки на отдельные переменные
длинный путь будет:
while($row=mysqli_fetch_array($result)){
$task_id = $row[0];
$parent_id = $row[1];
$task = $row[2];
// Do something with the row data
}
соответствующих страниц в PHP документ являются:
Преобразование массива в набор переменных: http://php.net/list
Fetching строку в Mysqli объекта результата: http://php.net/manual/en/mysqli-result.fetch-array.php
Он извлекает строку (из запроса MySQL) в массив с колоннами task_id
, parent_id
и task
до тех пор, пока больше нет строк для выборки. Функция list()
преобразует эти столбцы в переменные $task_id
, $parent_id
и $task
для использования в цикле while
.
Иными словами: Итерирует через набор строк.
+! Я согласен, но, возможно, вам также следует объяснить, что делает список() в контексте цикла while, поскольку это боль читается даже для опытных PHP'ers IMHO. – karim79
Это, конечно, не очень понятно, что много уверен ... кто-то слишком ленив, чтобы набрать $ row, чтобы он дал понять. –
http://us3.php.net/manual/en/mysqli-result.fetch-array.php
Только в случае, если вы не знали, что mysqli_fetch_array было.
Что такое MYSQLI_NUM? –
Второй параметр mysql_fetch_array() - это константа, указывающая формат возвращаемого массива: MYSQLI_ASSOC, MYSQLI_NUM или MYSQLI_BOTH. По существу, следует ли индексировать массив именами полей, целыми числами или обоими (два значения существуют в массиве для одних и тех же данных). На странице документации есть отличные объяснения расширения MySQLi. – gapple