Архив рассылки -программирование на PHP




Для этого используем функцию mysql_num_rows()


Для этого используем функцию mysql_num_rows().

Затем мы открываем цикл с количеством повторений, равным количеству полученных строк из запроса.

В теле цикла мы вынимаем из нашего запроса очередную строку в переменную-массив $film. Функция mysql_fetch_array раскладывает данные в ассоциативный массив, используя в качестве ключей имена полей из таблицы.

    Ассоциативный массив -- это тоже самое, что и обычный (нумерованный) массив, только в качестве имен для ячеек используются не цифры, а цепочки символов. И обращаться к ячейкам такого массива следует соответствующе: $abc['first'], $abc['mama']...

Далее мы приплюсовываем к нашей текстовой переменной очередную строку таблицы, используя полученные из базы данные. Для обращения к данным, как вы видите, используются названия полей таблицы. Это свойство функции mysql_fetch_array, как я уже сказал.

    Обратите особое внимание: обращаться к ячейкам ассоциативных массивов в текстовых строках нельзя! Надо обязательно разрывать строку и "вклеивать" значения при помощи точек(.), как показано.

Цикл повторяется нужное количество раз, после чего мы замыкаем $str последним html-тэгом. Готово.

Но не слишком ли это все громоздко? По-моему, очень даже. Предлагаю записать это все иначе: все тоже самое, но короче.
$this->sql_query="select f_id, f_name from film where f_date between '2000-01-01 00:00:00' and '2000-12-31 23:59:59 order by f_id'"; $this->sql_execute(); $str=""; while(list($f_id,$f_name)=mysql_fetch_row($this->sql_res)) { $str=$str."\n"; } $str=$str."
$f_id$f_name
";
Вот так.

Что изменилось?

Во-первых, мы в запросе сразу конкретизировали: какие поля из базы нам нужны, и в каком порядке нам их подать: f_id, f_name.

Во-вторых, мы избавились от подсчета кол-ва полученных записей из базы. Зачем они нам нужны, когда функция mysql_fetch_row сама сообщит, когда они закончатся.









Начало    Назад    Вперед




Книжный магазин