alef2474
24-04-2013, 20:30
Не могу понять очень распространенную фразу в PHP, т.к. в учебниках она разбирается по частям, а не вместе:
1)$sql="SELECT * FROM table WHERE id_s='$last' ORDER BY id";
2)$result=@mysql_query($sql);
3)if(@mysql_num_rows($result)>0)
{
4)while($row=@mysql_fetch_array($result))
{
операторы
}
В строках 1-2 вроде понятно: в переменную $result запихиваются все строки из таблицы, имеющие в колонке id_s определенное значение $last и эти строки отсортированы по возрастанию значения в колонке id
3) условный оператор тоже понятен: если в $result вообще отобрались какие-то строки(хотя бы одна >0), то условие и все что в него вложено выполняется.
Но что за странное условие цикла 4), не пойму
mysql_fetch_array судя по описанию и по названию $row должна строки таблицы из $result запихивать в элементы массива с индексами-названиями
т.е получается что какая-то неопределенная переменная $row сравнивается со строкой из таблицы $result. Естественно они не будут равны и цикл не должен выполняться, но в программе предполагается, что он вдруг выполняется, будто под while не логическая операция сравнения, а будто бы оператор присваивания переменной (элементу массива?) $row значения строки из $result.
Объясните пожалуйста, кто знает, что это за оператор while, может где есть нормальные примеры, а не просто теория.
1)$sql="SELECT * FROM table WHERE id_s='$last' ORDER BY id";
2)$result=@mysql_query($sql);
3)if(@mysql_num_rows($result)>0)
{
4)while($row=@mysql_fetch_array($result))
{
операторы
}
В строках 1-2 вроде понятно: в переменную $result запихиваются все строки из таблицы, имеющие в колонке id_s определенное значение $last и эти строки отсортированы по возрастанию значения в колонке id
3) условный оператор тоже понятен: если в $result вообще отобрались какие-то строки(хотя бы одна >0), то условие и все что в него вложено выполняется.
Но что за странное условие цикла 4), не пойму
mysql_fetch_array судя по описанию и по названию $row должна строки таблицы из $result запихивать в элементы массива с индексами-названиями
т.е получается что какая-то неопределенная переменная $row сравнивается со строкой из таблицы $result. Естественно они не будут равны и цикл не должен выполняться, но в программе предполагается, что он вдруг выполняется, будто под while не логическая операция сравнения, а будто бы оператор присваивания переменной (элементу массива?) $row значения строки из $result.
Объясните пожалуйста, кто знает, что это за оператор while, может где есть нормальные примеры, а не просто теория.