Поиск информации в базе данных

 

После заполнения таблиц базы данных “Travel”, можно осуществить поиск требуемых данных по определенному критерию. К таким критериям могут относиться фамилия, имя, отчество туриста, название туроператора, с помощью которого он заказывал путевки, название отеля, либо дата отправки и прибытия.

 

Ниже представлен пример поиска информации о туристах по дате отправки и вывод на экран результатов поиска.

 

HTML-код поиска информации в базе данных представлен ниже.

<HTML>

<HEAD>

<TITLE> Турагенство "Travel" - Поиск туриста</TITLE>

</HEAD>

<BODY>

<H1> Турагенство "Travel".</H1>

<H2> Поиск данных о туристе.</H2>

<FORM method="POST" action="example.php">

<<INPUT type="hidden" name="posted" value="true">

Выберите критерий поиска:<br>

<SELECT name="Otpravka">

<OPTION value="DateOtpravki">Дата отправки

<OPTION value="Number">Номер путевки

</SELECT><br>

Введите строку:<br>

<INPUT name="First" type=TEXT><br>

<INPUT type=submit value="Поиск"></form>

</BODY>

</HTML>

 

Реализация данного кода представлена на рисунке

 

 

в данном примере при загрузке Web-страницы на экране появляется форма, в которую пользователь должен ввести информацию для поиска. Критерий поиска необходимо выбрать из выпадающего списка. Значение критерия поиска требуется ввести в однострочное текстовое поле. Затем необходимо нажать кнопку “Поиск”. После этого подключится обработчик, указанный в атрибуте “action” тега “form”. В данном примере это файл example.php.

 

Код файла-обработчика представлен ниже.

<HTML>

<HEAD>

<STYLE type="text/css">

.center { text-align: center; }

</STYLE>

<TITLE> Турагенство "Travel" - Поиск туриста</title></head>

<BODY>

<H1> Турагенство "Travel".</H1>

<H2> Поиск данных о туристе.</H2>

<?php

if (isset($_POST['posted']))

{

$Otpravka = $_POST['Otpravka'];

$First = $_POST['First'];

trim($search_term); // удаление пробелов из начала и конца строки

if ($Otpravka == "" or $First == "")

{ echo "Вы не ввели параметры поиска. Пожалуйста, попробуйте снова."; exit; } // остановка выполнения сценария

$Otpravka =addslashes($Otpravka );

$First = addslashes($First);

$db = mysql_pconnect("localhost" , "root", ""); //установка соединения

if (!$db)

{ echo " Ошибка: Невозможно подключиться к MySQL серверу. Пожалуйста, попробуйте позже.";

exit; }

mysql_SELECT_db("Travel"); // выбор базы данных

$query = "SELECT Putevka.DateOtpravki, Putevka.Number, Putevka.DateVozvr, Turist.SecondName, Turist.FirstName, Turist.Patronym, Turist.SeriaPassport, Turist.NumberPassport, Turoperator.Name,

Hotel.Names, Hotel.Class

FROM Putevka, Turist, Turoperator, Hotel

WHERE Turist.Id = Putevka.Cod_Turist AND Turoperator.Id = Putevka.Cod_Operator AND Hotel.Id = Putevka.Cod_Hotel AND ".$Otpravka." LIKE '%".$First."%'";

$result = mysql_query($query); // выполнение запроса

$num_rows = mysql_num_rows($result);

// подсчет количества результатов

echo "<p> <h3>Туристов найдено: ".$num_rows.".</h3></p>";

echo "<table cellpadding=5 border=2>\n";

echo "<tr><th width=100>Номер путевки</th>

<TH width=100>Фамилия</TH><th width=100>Имя</th>

<TH width=100>Отчество</TH>

<TH width=100>Дата отправки </th><th width=100>Дата прибытия</TH>

<TH width=100>Название отеля</th>

<TH width=100>Туроператор</th></tr>\n";

for ($i=0; $i<$num_rows; $i++)

{ $row = mysql_fetch_array($result);

// обработка ряда результата запроса

echo "<TR><TD class \"center\">$row[Number]</TD>

<TD>$row[SecondName]</TD>

<TD>$row[FirstName]</TD>

<TD>$row[Patronym]</TD>

<TD>$row[DateOtpravki]</TD>

<td>$row[DateVozvr]</TD>

<TD class=\"center\">$row[Names]</TD>

<TD class=\"center\">$row[Name]</TD></TR>\n"; } }

?>

</BODY>

</HTML>

 

Реализация данного кода представлена на рисунке

 

 

Таким образом, в данном примере осуществлялся поиск информации в базе данных “Travel” по запросу пользователя. Перед выполнением запроса происходит проверка заполненности обязательных полей формы. Если заполнены не все поля, на экран выводится сообщение об ошибке, с просьбой заполнения полей. Затем происходит подключение к базе данных. Если все поля формы заполнены и подключение к базе данных прошло успешно, выполняется запрос на выборку данных из таблиц, после чего на экран выводится результат этого запроса.

 

В данном примере в качестве критерия поиска использовалась дата оптравки туриста. Из базы считывалась полная информация о туристах, которые купили путевки на заданную дату. При этом, использовались данные из таблиц “Putevka” (поля “Number”, “DateOtpravki”, ”DateVozvr”), “Turist” (поля “SecondName”, “FirstName”, “Patronym”), “Hotel” (поле “Name”) и Turoperator” (поле “Name”).

 

Затем считанная информация выводилась на экран. К такой информации относится номер путевки, дата отправки, дата прибытия, фамилия, имя, отчество туриста, название отеля, название туроператора.

 

Как видно на рисунке 8.37, в данном примере осуществлялся поиск информации о туристах, чья дата отправки “2010-05-18”. В базе данных “Travel” было найдено три записи, удовлетворяющие данному условию: “Семенов Николай Петрович”, “Иванов Иван Максимович” и “Петров Станислав Евгеньевич”.

 

Необходимо отметить, что помимо описанных выше функций, при работе с СУБД MySQL используется ряд других функций, которые описаны далее.