Добавление информации в базу данных

 

Далее будет рассмотрен пример совместной работы языка РНР с базой данных СУБД MySQL “Travel”, состоящей из четырех таблиц - “Hotel”, “Putevka”, “Turist” и “Turoperator”.

 

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

 

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">

<<TABLE border=0> <TR><TD>Фамилия:</TD>

<TD><INPUT name="SecondName" type="text"></TD>

</TR><TR><TD>Имя:</td>

<TD><INPUT name="FirstName" type="text"></TD>

</TR><TR> <TD>Отчество: </td>

<TD><INPUT name="Patronym" type="text"></TD>

</TR><TR><TD>Серия паспорта:</TD>

<TD><INPUT name="SeriaPassport" type="text"></TD>

</TR><TR><TD>Номер паспорта:</TD>

<TD><INPUT name="NumberPassport" type="text"></TD>

<TR><TD colspan=2><INPUT type="submit" value="Добавить"></TD></TR>

</TABLE>

</FORM>

</BODY>

</HTML>

 

 

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

 

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

<HTML>

<HEAD>

<TITLE> Турагенство "Travel" - Добавление данных о туристе

</TITLE>

</HEAD>

<BODY>

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

<H2> Добавление данных о туристе.</H2>

<?php

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

{ $SecondName = $_POST['SecondName'];

$FirstName = $_POST['FirstName'];

$Patronym = $_POST['Patronym'];

$SeriaPassport = $_POST['SeriaPassport'];

$NumberPassport = $_POST['NumberPassport'];

//передача данных из формы на сервер

if ($SecondName == "" or $FirstName == "" or $Patronym == ""or $SeriaPassport == ""or $NumberPassport == "")

{ echo "Необходимо ввести имя - нажмите кнопку Назад и заполните форму еще раз"; exit; }

$SecondName = addslashes($SecondName);

$FirstName = addslashes($FirstName);

$Patronym = addslashes($Patronym);

$SeriaPassport = addslashes($SeriaPassport);

$NumberPassport = addslashes($NumberPassport);

$db = @mysql_pconnect("localhost", "root");

if (!$db)

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

mysql_SELECT_db("Travel");

$query = "INSERT INTO Turist(SecondName, FirstName, Patronym,SeriaPassport,NumberPassport) VALUES ('".$SecondName."','".$FirstName."','".$Patronym ."','".$SeriaPassport ."','".$NumberPassport ."')";

$result = mysql_query($query);

if($result)

echo "<H3>Информация о туристе успешно добавлена в базу данных.</H3>"; }

?>

</BODY>

</HTML>

 

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

 

 

Таким образом, в данном примере осуществлялось добавление данных в одну из таблиц базы данных “Travel”. В таблицу “Turist” добавляется информация в поля “SecondName”, “FirstName”, “Patronym”, “SeriaPassport” и “NumberPassport”. При этом происходит проверка заполнености всех полей формы. Если заполнены не все поля, то на экран выводится сообщение об ошибке и просьба о заполнении всех полей. Далее происходит подключение к базе данных. Если подключение невозможно, то на экран выводится соответствующее сообщение. Если подключение произошло успешно, выполняется сохранение в таблицу “Turist” данных, введенных в форму. К таким данным относится фамилия, имя, отчество туриста, номер и серия его паспорта. После удачного заполнения пользователю выводится сообщение “Информация о туристе успешно добавлена в азу данных”.

 

Как видно на рисунке 8.35, в данном примере в таблицу “Turist” была добавлена запись: “Семенов Николай Петрович 5304 096572”.