tempin
Новичок
Добрый день.
Имеется база данных, имеется sql запрос, находящийся в переменной $sql.
В результате работы должный выдаваться, к примеру, значения поля ID всех строк, отсортированных sql запросом.
Реализовывается это следующим кодом:
...
$result = mysql_query($sql);
while($myrow=mysql_fetch_array($result))
{
echo $myrow['id'];
echo "<br>";
}
Вопросы:
1) По какому принципу работает цикл while в данном примере? В мануале: The meaning of a while statement is simple. It tells PHP to execute the nested statement(s) repeatedly, as long as the while expression evaluates to TRUE.
Код выполняется, пока условие верно. Но что есть условие? По идеи, вот оно:$myrow=mysql_fetch_array($result). Значение одной переменной присваивается другой, где здесь условие? a<b - условие, i==2 - условие, а x=b - это что вообще?
2) Почему цикл работает? Почему если просто написать оператор print_r mysql_fetch_array($result) выдается лишь одна строка из БД, которая стоит выше всех остальных, соответствующих условию запроса?
Конечная задача заключается в том, чтобы получить некий четкий структурированный массив [n][m], где n - количество отсортированных строк, m - количество полей в таблице. Значения массива - соответственные значения из БД. То есть, короче говоря, требуется "переместить" нужные строки из бд в массив.
Имеется база данных, имеется sql запрос, находящийся в переменной $sql.
В результате работы должный выдаваться, к примеру, значения поля ID всех строк, отсортированных sql запросом.
Реализовывается это следующим кодом:
...
$result = mysql_query($sql);
while($myrow=mysql_fetch_array($result))
{
echo $myrow['id'];
echo "<br>";
}
Вопросы:
1) По какому принципу работает цикл while в данном примере? В мануале: The meaning of a while statement is simple. It tells PHP to execute the nested statement(s) repeatedly, as long as the while expression evaluates to TRUE.
Код выполняется, пока условие верно. Но что есть условие? По идеи, вот оно:$myrow=mysql_fetch_array($result). Значение одной переменной присваивается другой, где здесь условие? a<b - условие, i==2 - условие, а x=b - это что вообще?
2) Почему цикл работает? Почему если просто написать оператор print_r mysql_fetch_array($result) выдается лишь одна строка из БД, которая стоит выше всех остальных, соответствующих условию запроса?
Конечная задача заключается в том, чтобы получить некий четкий структурированный массив [n][m], где n - количество отсортированных строк, m - количество полей в таблице. Значения массива - соответственные значения из БД. То есть, короче говоря, требуется "переместить" нужные строки из бд в массив.