2015-08-13 2 views
-1

Может быть, мой вопрос, кажется глупым, но я хочу, чтобы действительно понять не писать код без пониманияКак mysql_fetch_assoc(); с while цикл итерации всех элементов?

Если у меня есть база данных, и я хочу использовать его:

$handle=mysql_query("SELECT * FROM users ORDER BY id"); 
$num=mysql_num_rows($handle); 

тогда я написал, что код для итерации по массиву

while($row = mysql_fetch_assoc($handle)){ 
    echo $row['username']."<br>"; 
} 

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

ответ

1

При запуске из данных, mysql_fetch_assoc($handle) вернется null, так $row = mysql_fetch_assoc($handle) будет вычисляться false. Это остановит ваш цикл while.

+0

ну, так как MySQL_fetch_assoc ($ handle); возвращает каждый раз следующий элемент или следующий массив? –

+0

@SamPider Я не совсем уверен, что вы имеете в виду. Он возвращает следующую строку, как массив. –

0

$ ручка является ресурсом MySql, так X число строк ...

$row = mysql_fetch_assoc($handle) будет возвращать одну строку из ресурса, или NULL, если нет больше строк.

Итак, в какой-то момент $row будет оценивать как false (так как больше нет строк для возврата), который завершит цикл while.

+0

хорошо я понял вас, но что сделает MySQL_fetch_assoc ($ handle); возвращать каждый раз следующую строку в ресурсе? –

+0

$ handle - это ресурс MySQL, поэтому X количество строк ... – MaggsWeb