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


             

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


Кроме применения функций MySQL с оператором 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 рассматривается в приложении.

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

Пример 10.3.

(html, txt)

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

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

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

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

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

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



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