Наступні приклади демонструють взаємодію з базами даних через HTML форми.
5.3 Додавання даних у БД
Розглянемо приклад додавання нового запису в таблицю book через HTML форму. Спочатку створимо файл add_book.html, що дозволяє вносити інформацію про книгу у форму.
$query="INSERT INTO book VALUES('$inv','$shifr','$autor','$nazv','$izdat','$gorod','$year','$price')";
$result=MYSQL_QUERY($query);
if($result){echo "Дані успішно внесені";}
else {echo "Дані не внесені";}
mysql_close($id);
?>
</body>
</html>
5.4 Видалення даних із БД
Розглянемо тепер приклад видалення читача з таблиці reader через HTML форму. Для цього створимо файл del_reader.html
<HTML>
<TITLE>Вилучення читача</TITLE>
<HEAD>
</head>
<BODY>
<h3>Вилучити читача</h3>
<form method="POST" action="del_r.php">
<p> Номер квитка <br>
<input type="text" name="nbil">
</p>
<p>Прізвище<br>
<input type="text" name="fio">
</p>
<input type="submit" value="Вилучити">
<input type="reset" value="Очистити">
</body>
</html>
У браузері це має такий вигляд
Файл del_r.php, що обробляє дані з форми, має вигляд
<HTML>
<HEAD>
<TITLE>Вилучення читача</TITLE>
</head>
<BODY>
<?php
if (isset($_POST['nbil'])) {$nbil=$_POST['nbil'];}
if (isset($_POST['fio'])) {$fio=$_POST['fio'];}
$id=mysql_connect('localhost','root') or die ("Неможливо підключитись до серверу");
mysql_select_db('library') or die("БД не вибрана");
$query="DELETE FROM reader WHERE n_bil='$nbil' AND fio='$fio'";
$result=MYSQL_QUERY($query);
if($result){echo "Читача вилучено";}
else {echo "Помилка, читача не вилучено";}
mysql_close($id);
?>
</body>
</html>
Розглянемо тепер видалення читача з таблиці, використовуючи веб-форму зі списком, що випадає. Для цього створюємо файл del_list.php, що формує список, що випадає, і наповнює його записами з таблиці reader
<HTML>
<TITLE>Вилучити читача</TITLE>
<HEAD>
</head>
<BODY>
<h3>Виберіть читача</h3>
<form method="POST" action="del_rd.php">
<select name="list">
<?php
$id=mysql_connect('localhost','root') or die ("Неможливо підключитись до серверу");
mysql_select_db('library') or die("БД не вибрана");
У списку виводимо номер квитка читача $au[0] і прізвище $au[1], оскільки в списку можуть бути однофамільники. У браузері це буде виглядати таким чином
Для прийому даних з форми й видалення читача з таблиці reader створюємо файл del_rd.php
<HTML>
<TITLE>Вилучити читача</TITLE>
<HEAD>
</head>
<BODY>
<?php
if (isset($_POST['list'])) {$nbil=$_POST['list'];}
$id=mysql_connect('localhost','root') or die ("Неможливо підключитись до серверу");
mysql_select_db('library') or die("БД не вибрана");
$result=mysql_query("SELECT * FROM reader");
$query="DELETE FROM reader WHERE n_bil='$nbil'";
$result=MYSQL_QUERY($query);
if($result){echo "Читача вилучено";}
else {echo "Помилка, читача не вилучено";}
mysql_close($id);
?>
</body>
</html>
5.5 Відбір даних з поєднаних таблиць
Попередні приклади демонстрували операції з однією таблицею бази даних. У наступному прикладі побудуємо запит, що відбирає дані з декількох таблиць. Створимо інтерфейс, який дозволяє переглянути список книг, які на руках у вибраного читача. На відміну від попередніх запитів, форма запиту і відображення результатів будуть поєднані в одному файлі.
<HTML>
<TITLE>Абонемент</TITLE>
<HEAD>
</head>
<BODY>
<form method="POST" action="">
<p><strong>АБОНЕМЕНТ</strong><br>
<select name="nbil">
<option selected>Виберіть читача</option>
<?php
$id=mysql_connect('localhost','root') or die ("Неможна підключитись до серверу");
mysql_select_db('library') or die("неможна вибрать БД");
$query="SELECT book.autor,book.nazv FROM book,abonement WHERE abonement.n_bil='$nbil' AND abonement.inv=book.inv";
$res3=MYSQL_QUERY($query) or die ('Помилковий запит');
$i=0;
$myrow=mysql_fetch_row($res3) or die ('Книг на руках немає');
do
{$i=$i+1;
echo $i.". " .$myrow[0].". ". $myrow[1] ."<br>";}
While($myrow=mysql_fetch_row($res3));
}
?>
</body>
</html>
Оскільки атрибут форми action має пусте значення, то для обробки форми використовується таж сама сторінка.При першому відкриті сторінки кнопка Submit ще не натиснута, тому змінна send не визначена, і частина коду, яка відображає список книг, виконуватись не буде. Після того, як користувач вибере читача і натисне кнопку Показати список книг, функція ISSET($_POST['send']) буде мати значення True, що відкриває шлях для виконання запиту і виводу результатів
Отже, ми розглянули основні прийоми використання баз даних для створення веб-ресурсів. У другій частині рекомендацій представлені завдання для лабораторних робіт і приклади їх виконання.
РЕКОМЕНДОВАНА ЛІТЕРАТУРА
1. Хольцнер С. РНР в примерах/ С. Хольцнер; пер. с англ. — М.: ООО «Бином-Пресс», 2007. — 352 с.: ил.
2. Конверс Т. PHP 5 и MySQL. Библия пользователя/ Конверс Т., Дж. Парк, К. Морган; пер.с англ. - М.: Вильямс, 2007.- 1216 с.
3. Веллинг Л. MySQL: учеб. пособ./ Л.Веллинг, Л.Томсон; пер. с англ. – М.: Издательский дом «Вильямс», 2005. – 304 с.