Пример. Справочник телефонов

Приложение 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. Структурно он должен состоять из трех частей, которые должны обеспечить:

  1. соединение с БД;
  2. выборку данных из БД на основании совпадения фамилий с введенной в форму комбинацией символов;
  3. динамическое формирование 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:&nbsp;</TD><TD><? echo $arr['fio']; ?>&nbsp;</TD> 
		<TD>Phone:&nbsp;</TD><TD><? echo $arr['num']; ?>&nbsp;</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"; 
?>

Результат работы приложения "справочник телефонов" в случае просмотра абонентов, фамилии которых начинаются на "Ив" приведен ниже.

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