Мучает вопрос по Mysql

Дэн

Постоялец
Регистрация
3 Май 2008
Сообщения
63
Реакции
8
Привет всем! Вот меня очень мучает вопрос по функции mysql_fetch_array();

Вот например я вывожу из базы несколько записей примерно таким образом:

PHP:
$query = "SELECT * FROM `table` WHERE `module`=news";
$result = mysql_query($query);
$row = mysql_fetch_array($result);

do
{
echo $row['title'];
echo $row['full_text'];
}
while ($row = mysql_fetch_array($result));

Меня очень интересует момент
while ($row = mysql_fetch_array($result));

Это же еще один запрос в базу или нет?
Это если я вывожу 5 новостей это 6 запросов???
И если это так то есть альтернативные варианты чтоб не делаеть столько запросов? не обязательно чтоб выводилось через mysql_fetch_array
 
Запрос выполняется только 1 раз в этой строке

PHP:
$result = mysql_query($query);

В переменную $result помещается результирующий набор данных, но с ним нельзя сразу начать работать, его нужно преобразовать в массив, где есть ключ и значение. Для этого служит mysql_fetch_array. Это все равно что взять текстовый файл и считывать каждую строку пока не будет конец файла. По такому принципу работает ваш цикл.
 
небольшое дополнение ...нужно иметь ввиду, что функция mysql_fetch_array() возвращает одни и те же данные дважды и обратиться например к данным из первого столбца таблицы (ну например у столбца имя id) можно двумя способами как $row['id'] и $row['0'].
если не планируется обращение к данным в численном виде: $row['0'] то лучше использовать функцию mysql_fetch_assoc() которая возвращает только ассоциативный массив $row['id'] правда разница в работе этих функций видна только на слабых серверах и при выборке значений из таблиц с очень большим количеством столбцов...
 
выполняется один запрос. а, вообще, переходите на -удобнее использовать, быстрее быстрее работает.
 
Назад
Сверху