Введение в программирование на PHP5


             

Выбор записей


Кроме использования функций ODBC с оператором SQL INSERT для добавления записей в базу данных, можно также извлекать записи из таблицы базы данных с помощью оператора SQL SELECT. Типичная форма ввода для выбора существующих записей из таблицы Directory показана ниже. В этом примере фиктивная компания Company XYZ, имеет онлайновую форму, которая позволяет пользователям ввести фамилию сотрудника и найти имя и фамилию сотрудника, номер телефона и адрес e-mail.


Оператор SQL SELECT показан ниже:

SELECT * | [DISTINCT] field1 [,field2]... FROM TableName WHERE criteria ORDER BY FieldName1 [ASC|DESC] [,FieldName2 [ASC|DESC] ]...

Более подробное рассмотрение оператора SELECT дано в разделе 10.

Следующий код используется для обработки формы DirectorySearch.php:

Пример 9.3.

(html, txt)

Эта страница содержит два блока кода PHP. Первый выполняется, когда делается щелчок на кнопке отправки "Search". Введенное пользователем имя (first name) присваивается скалярной переменной '$string'. Затем с базой данных устанавливается соединение и выполняется оператор SQL SELECT для выбора всех (*) полей записей таблицы, где значение поля 'lastname' совпадает со строкой фамилии, введенной пользователем. Наконец, выполняется оператор SQL. Если найдены подходящие записи, то множество записей присваивается переменной '$rs'.

Второй блок кода появляется в разделе тела XHTML-документа. Код, содержащий операторы echo или print, помещается обычно между открывающим и закрывающим тегами <body>, чтобы он выводился или форматировался в соответствии с другими элементами страницы. Операторы echo и print в блоках PHP, появляющиеся выше <html>, всегда появляются в верху страницы и предшествуют всем другим ее элементам.

Назначение этого блока кода состоит в выводе записей, извлеченных при выполнении оператора SQL в предыдущем блоке кода. Сначала оператор if используется для определения, что массив $_POST не является пустым. Если массив пустой, то это означает, что форма не была отправлена и никакие записи не были извлечены. Если этот условный оператор будет отсутствовать, то возникнет ошибка, так как массив odbc_fetch_array не будет содержать никаких значений.

Затем используется цикл while для итераций на множестве записей. Во время каждой итерации по множеству записей, функция odbc_fetch_array() создает ассоциативный массив (здесь массив называется $row), содержащий значения полей текущей записи. Индексы массива соответствуют именам полей формы, а элементы массива — значениям полей. Каждая запись затем выводит $row['FName'] — значение поля 'FirstName', $row['LName'] – значение поля 'LastName', $row['Telephone'] – значение поля 'Telephone', и $row['Email'] – значение поля 'Email'. Этот процесс продолжается, при этом каждый раз массив $row содержит новые значения, пока не будет достигнут конец множества записей.

После вывода всех записей соединение с базой данных закрывается с помощью функции odbc_close().

Ниже показан пример вывода, созданного после поиска в каталоге компании XYZ.




Содержание  Назад  Вперед