Справочник телефонов
Приложение Web баз данных "справочник телефонов" выбрано из следующих соображений:
по сути, это не сложное приложение;
оно может быть использовано на практике.
Данное приложение позволяет по заданной фамилии или ее части найти в базе данных все похожие фамилии. Затем оно формирует html документ, который содержит список из этих фамилий и соответствующих им номеров телефонов.
Для ввода фамилии или ее части пользователь должен заполнить однострочную форму, которой соответствует следующий htm код
<html>
<body>
<FORM METHOD=Get ACTION="view.php3">
<P><INPUT TYPE=Text NAME=_fio SIZE=20><P>
<P><INPUT TYPE=Submit VALUE="Введите фамилию"></P>
</FORM>
</body>
</html>
Теперь обсудим текст скрипта view.php3. Структурно он должен состоять из трех частей, которые должны обеспечить:
соединение с БД;
выборку данных из БД на основании совпадения фамилий с введенной в форму комбинацией символов;
динамическое формирование html документа.
Первую из перечисленных задач можно решить примитивом 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 {
?>
<HTML>
<BODY>
<TABLE BORDER="1" WIDTH="200">
<?
// *** построчное отображение записей ***
$i = 0;
do {
$arr = pg_Fetch_Array ($result, $i);
?>
<TR>
<TD>Name: </TD><TD><? echo $arr['fio']; ?> </TD>
<TD>Phone: </TD><TD><? echo $arr['num']; ?> </TD>
</TR>
<? $i = $i + 1; // номер следующей записи, которую будем отбражать строкой таблицы
} while ($i < $RecCount);
}
?>
</TABLE>
<BR>
</BODY>
</HTML>
Назовем его примитивом 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";
?>
Результат работы приложения "справочник телефонов" в случае просмотра абонентов, фамилии которых начинаются на "Ив" приведен ниже.