Поэтому у меня есть код:
$sql = "SELECT * from users WHERE level = 2"; $result = mysql_query($sql); while($write = mysql_fetch_array($result)){ echo ''.$write['username'].''; }
Я хочу сделать его более простым, так что я делаю:
while($write = mysql_fetch_array(mysql_query("SELECT * from users WHERE level = 2"))){ echo ''.$write['username'].''; }
Почему первый код не является бесконечным циклом, а второй код?
первый код выполняет mysql_query($sql);
ресурса, заданного mysql_query($sql);
второй повторяет запрос и загружает первую строку каждый раз навсегда. поэтому вместо перехода к следующей строке он создает новый запрос и запускается в этой строке.
В качестве примечания – не используйте функции mysql_*
. mysqli_
этого используйте mysqli_
или pdo
.
Это связано с тем, что ваш запрос находится внутри, который сообщает while, чтобы выполнить запрос снова и снова. Если вы ищете гораздо более простой вариант, вы можете попробовать использовать ORM такой phpactiverecord.