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

Тема в разделе "PHP", создана пользователем Дэн, 15 апр 2011.

Модераторы: latteo
  1. Дэн

    Дэн Постоялец

    Регистр.:
    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
     
  2. kkkoopp

    kkkoopp Постоялец

    Регистр.:
    18 май 2010
    Сообщения:
    121
    Симпатии:
    24
    Запрос выполняется только 1 раз в этой строке

    PHP:
    $result mysql_query($query);
    В переменную $result помещается результирующий набор данных, но с ним нельзя сразу начать работать, его нужно преобразовать в массив, где есть ключ и значение. Для этого служит mysql_fetch_array. Это все равно что взять текстовый файл и считывать каждую строку пока не будет конец файла. По такому принципу работает ваш цикл.
     
    Дэн нравится это.
  3. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    небольшое дополнение ...нужно иметь ввиду, что функция mysql_fetch_array() возвращает одни и те же данные дважды и обратиться например к данным из первого столбца таблицы (ну например у столбца имя id) можно двумя способами как $row['id'] и $row['0'].
    если не планируется обращение к данным в численном виде: $row['0'] то лучше использовать функцию mysql_fetch_assoc() которая возвращает только ассоциативный массив $row['id'] правда разница в работе этих функций видна только на слабых серверах и при выборке значений из таблиц с очень большим количеством столбцов...
     
  4. sidor

    sidor

    Регистр.:
    7 июн 2006
    Сообщения:
    220
    Симпатии:
    14
    выполняется один запрос. а, вообще, переходите на PDO -удобнее использовать, быстрее быстрее работает.
     
    Дэн нравится это.