Прагматический подход к разработке приложений Web баз данных
Добавление данных
Результатом исполнения скрипта create.php3 является файл test. Каждая запись этого файла состоит из двух типов данных: номера по списку id и соответствующих ему фамилии и инициалов - name.Операция добавления данных позволяет создавать новые записи и заполнять их поля заданными значениями.
Примитив добавления данных
// *** соединение с БД *** require "primitive/connect.inc";
// *** добавление данных *** $result = pg_Exec( $cnct, "INSERT INTO test values(1, 'Иванов')" ); if ( $result ) { echo "Data insert \n"; } ?>
назовем insert.php3.
Поместите его на сервер и запустите на исполнение Netscape Navigator'ом.
Если данные будут добавлены, то вы увидите сообщение: "Data insert".
Формы - средство ввода данных
Примитивы, которые мы разрабатываем должны быть универсальны. Другими словами, они должны позволять работать с изменяемыми значениями параметров SQL. В противном случае разрабатывать приложения компоновкой примитивов нельзя.Рассмотрим в качестве примера реализацию примитива добавления данных с параметром.
В частном случае, когда номер по списку id = 1 и соответствующая ему фамилия - name = "Иванов", он может быть записан так
// *** соединение с БД *** require "primitive/connect.inc"; // *** добавление данных *** $result = pg_Exec( $cnct, "INSERT INTO test values(1, 'Иванов')" ); if ( $result ) { echo "Data insert \n"; } ?>
Параметры примитива можно изменять с помощью html форм.
Начало описания формы обозначают оператором . Например,
Рассмотрим основные параметры оператора
Теперь обсудим текст скрипта view.php3. Структурно он должен состоять из трех частей, которые должны обеспечить:
Первую из перечисленных задач можно решить примитивом connect.inc.
Вторую задачу SQL командой
SELECT * FROM phone WHERE lower(fio) LIKE '_fio%'
Для решения третьей задачи можно предложить следующий скрипт, который разработан на основе view_n.php3
// *** динамическое формирование html документа *** $RecCount = pg_NumRows( $result ); // число записей, которые следует отобразить на экране if (empty( $RecCount )) { echo "No Data\n"; // нет таких фамилий } else{ ?>
| Name: | echo $arr['fio']; ?> | Phone: | echo $arr['num']; ?> |
Назовем его примитивом view_m.inc.
Окончательно текст скрипта view.php3, который обеспечивает реализацию "справочника телефонов" следующий:
//*** соединение с БД *** require "primitive/connect.inc";
// *** выборка данных *** $result = pg_Exec( $cnct, "SELECT * FROM phone WHERE lower(fio) LIKE '$_fio%'" );
// *** отображение данных *** require "primitive/view_m.inc"; ?>
Результат работы приложения "справочник телефонов" в случае просмотра абонентов, фамилии которых начинаются на "Ив" приведен ниже.

Приступая к работе
Прежде, чем приступить к разработке базовых примитивов, организуем рабочую среду.Под средой будем понимать физическую реализацию модели распределенных вычислений и средств манипулирования WebDBApp. Средства манипулирования должны обеспечить создание и удаление WebDBApp, а также редактирование его кода.
Графически используемую реализацию модели распределенных вычислений можно представить так

Для определенности клиентскую часть реализуем Netscape Navigator.
Серверная часть функционирует под управлением ОС UNIX. В качестве Web-сервера используем Apache. Данные будем хранить в Postgres95 реляционной базе. Назовем эту базу данных - chek.
WebDBApp будем хранить на том же компьютере, что и базу данных. Например, в папке WebDBApp. Для манипуляций приложениями используем FAR менеджер. Можно приложение Windows Notepad.exe (Блокнот).
Для освоения излагаемого материала можно реализовать клиентскую и серверную части модели распределенных вычислений на одном копьютере (локально), например, в среде Windows. Вместо Postgres95 можно использовать ODBC или . Отличия команд PhP этих серверов от PhP Postgres95 можно уточнить . Инсталляция Apache описана в статье [].
|
Просмотр данных
Предварительно задают объем просматриваемых данных.Эту операцию называют "выборка". Ее реализуют SQL командой SELECT. Например, так
SELECT * FROM test
Затем данные, которые выбраны из таблицы, распечатывают построчно. Для этого используют функции, которые сохраняют строки таблиц, как массивы, например,
array pg_Fetch_Array(int result, int row);
Здесь row - номер строки. Их нумеруют, начиная с 0.
Итак, примитив просмотра данных
// *** соединение с БД *** require "primitive/connect.inc";
// *** просмотр данных *** $result = pg_Exec( $cnct, "SELECT * FROM test" ); if ( $result ) { $arr = pg_Fetch_Array ($result, 0); echo $arr['name']; } ?>
назовем view.php3.
Поместите его на сервер и запустите на исполнение.
Обратите внимание, что данный скрипт позволяет просмотреть значение поля name только одной записи.
Если в таблице несколько строк, и вы хотите просмотреть результат выбоки как таблицу, то используйте следующий скрипт
//*** соединение с БД *** require "primitive/connect.inc";
// *** просмотр данных *** $result = pg_Exec( $cnct, "SELECT * FROM test" ); $RecCount = pg_NumRows( $result ); // число записей, которые следует отобразить на экране ?>
| Name: | echo $arr['name']; ?> |
Назовем этот скрипт view_n.php3.
Результат его исполнения такой

Разработка базовых примитивов
Примитивы можно разделить на две группы: манипулирования таблицами базы данных и самими данными. К первой группе относят:Во вторую группу входят:
Любые манипуляции с таблицами или их данными возможны только после соединения с базой данных. Поэтому, прежде, чем перейти к разработке примитивов рассмотрим этот вопрос.
Соединение с базой данных
Для баз данных Postgres95 это делают с помощью функцииint pg_Connect(string host, string port, string options, string tty, string dbname);
Эта функция возвращает идентификатор соединения. Он равен 1, если соединение прошло успешно. В противном случае его значение равно 0.
Сохраните ниже приведенный скрипт в файле connect.php3 и поместите его в папку WebDBApp.
$cnct = pg_Connect( "host=localhost port=5432 dbname=chek user=chek" ); if( !$cnct ) { // соединения нет echo "Connect to database failed! Please, consult the system administrator. \n"; exit; } else { // соединение прошло успешно echo "Do Something \n"; } ?>
Запустите скрипт на исполнение, для чего воспользуйтесь, например, Netscape Navigator. Введите в его адресной строке путь к папке WebDBApp, например, так http://ssu.sumy.ua/teach/WebDBApp/connect.php3
Если соединение с базой данных произойдет успешно, то вы увидите следующее сообщение

Как мы уже отмечали приложения Web баз данных - это сплав PhP и HTML кодов. Как же сервер их различает. Для указания начала PhP кода используют такую комбинацию символов , а его завершение помечают так ?>. Цвет символов серверу безразличен. Этот цвет выбран для того, чтобы в дальнейшем было зрительно легко отличать PhP код от остального текста.
Комментарии выделены зеленым цветом.
Создайте в папке WebDBApp папку primitive и сохраните там примитив соединения с базой данных
$cnct = pg_Connect( "host=localhost port=5432 dbname=chek user=chek" ); if( !$cnct ) { // соединения нет echo "Connect to database failed! Please, consult the system administrator. \n"; exit; ?>
как connect.inc файл.
Если вы хотите очистить форму,
. Если вы хотите очистить форму, то значение параметра TYPE должно быть равно Reset.Окончательно, текст html формы для ввода параметра name примитива добавления данных будет иметь вид
Последнее, что необходимо - это заменить строку примитива
$result = pg_Exec( $cnct, "INSERT INTO test values(1, 'Иванов')" );
на следующую
$result = pg_Exec( $cnct, "INSERT INTO test values(1, '$na')" );
Это позволит добавлять в таблицу БД строки с любыми значениями параметра name.
Создание таблиц
А теперь нам осталось совсем чуть-чуть, чтобы создать таблицу test - воспользоваться SQL командой CREATE TABLE. Например, так//*** соединение с БД *** require "primitive/connect.inc";
//*** создание таблицы *** $result = pg_Exec( $cnct, "CREATE TABLE test (id int, name char(20))" ); if ( $result ) { // таблица создана echo "Table create \n"; } ?>
Используемая здесь функция
int pg_Exec(int connection, string query)
позволяет переадресовать SQL запрос Postgres95 для исполнения. Ключевое слово require позволяет включить текст примитива connect.inc, который был помещен в папку primitive.
Сохраните этот скрипт под именем create.php3 и запустите его на исполнение.
Удаление таблиц из базы данных
Таблицу удаляют следующей SQL командойDROP TABLE test;
Удаление записей таблиц
Для удаления всех записей из таблицы используют команду SQL видаDELETE FROM test;
Записи, где значения полей, которые удовлетворяют некоторым условиям, удаляют так:
DELETE FROM test WHERE name='Иванов';
Анализируя процесс разработки Web приложений
Анализируя процесс разработки Web приложений БД на основе примитивов можно указать ряд очевидных преимуществ:
Бизнес в интернете: Сайты - Софт - Языки - Дизайн
- Киберсантинг
- Киберсантинг как бизнес
- Виды Киберсантинга
- Создание игр
- Дизайн как бизнес
- Dreamweaver
- PHP
- Homesite
- Frontpage
- Studio MX
- Сайтостроительство
- Citrix MetaFrame
- Стили сайта
- ActiveX на сайте
- HTML как основа сайта
- Adobe GoLive
- Что такое WEB
- Мобильные WAP сайты
- 3D графика на сайтах
- 3DS MAX графические решения
- Графика в 3D Studio MAX и на сайте