ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 02.08.2020
Просмотров: 1884
Скачиваний: 3
<BODY>
<h2>Внесіть інформацію про книгу</h2>
<form method="POST" action="insert_book.php">
<p>Інвентарний номер<br>
<input type="text" name="inv">
</p>
<p>Шифр<br>
<input type="text" name="shifr">
</p>
<p>Автор<br>
<input type="text" name="autor">
</p>
<p> Назва <br>
<textarea name="nazv" cols="40" rows="2"></textarea>
</p>
<p>Видавництво<br>
<input type="text" name="izdat">
</p>
<p>Місто видання<br>
<input type="text" name="gorod">
</p>
<p>Рік видання<br>
<input type="text" name="year">
</p>
<p>Вартисть<br>
<input type="text" name="price">
</p>
<input type="submit" value="Добавити">
<input type="reset" value="Очистити">
</body>
</html>
У браузері це має такий вигляд
Тепер напишемо скрипт, що приймає дані з форми й вносить їх у таблицю book. Ім'я файлу зі скриптом insert_book.php прописане в атрибуті форми action.
<HTML>
<BODY>
<?php
if (isset($_POST['inv'])) {$inv=$_POST['inv'];}
if (isset($_POST['shifr'])) {$shifr=$_POST['shifr'];}
if (isset($_POST['autor'])) {$autor=$_POST['autor'];}
if (isset($_POST['nazv'])) {$nazv=$_POST['nazv'];}
if (isset($_POST['izdat'])) {$izdat=$_POST['izdat'];}
if (isset($_POST['gorod'])) {$gorod=$_POST['gorod'];}
if (isset($_POST['year'])) {$year=$_POST['year'];}
if (isset($_POST['price'])) {$price=$_POST['price'];}
$id=mysql_connect('localhost','root') or die ("Неможливо підключитися до сервера");
mysql_select_db('library') or die("БД не обрана");
echo $inv,$shifr,$autor,$nazv,$izdat,$gorod,$year,$price;
$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("БД не вибрана");
$result=mysql_query("SELECT * FROM reader");
while($au=mysql_fetch_row($result))
{echo "<option value='$au[0]'>$au[0] $au[1]</option>\n";}
?>
</select>
<input type="submit" value="Вилучити">
</body>
</html>
У списку виводимо номер квитка читача $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("неможна вибрать БД");
$res1=mysql_query("SELECT * FROM reader");
while($au=mysql_fetch_row($res1))
{echo "<option value='$au[0]'>$au[0] $au[1]</option>\n";}
echo '</select><input type="submit" name="send" value="Показати список книг"><br><br>';
if(ISSET($_POST['send']))
{
if(ISSET($_POST['nbil'])){$nbil=$_POST['nbil'];}
if(ISSET($_POST['fio'])){$fio=$_POST['fio'];}
$res2=mysql_query("SELECT * FROM reader WHERE n_bil='$nbil'");
$res_fio=mysql_fetch_row($res2);
echo "<strong>Прізвище читача:</strong> ".$res_fio[1]."<br>";
echo "<strong>Список книг:</strong><br>";
$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, що відкриває шлях для виконання запиту і виводу результатів
Отже, ми розглянули основні прийоми використання баз даних для створення веб-ресурсів. У другій частині рекомендацій представлені завдання для лабораторних робіт і приклади їх виконання.
РЕКОМЕНДОВАНА ЛІТЕРАТУРА
-
Хольцнер С. РНР в примерах/ С. Хольцнер; пер. с англ. — М.: ООО «Бином-Пресс», 2007. — 352 с.: ил.
-
Конверс Т. PHP 5 и MySQL. Библия пользователя/ Конверс Т., Дж. Парк, К. Морган; пер.с англ. - М.: Вильямс, 2007.- 1216 с.
-
Веллинг Л. MySQL: учеб. пособ./ Л.Веллинг, Л.Томсон; пер. с англ. – М.: Издательский дом «Вильямс», 2005. – 304 с.
-
Мотев А.А. Уроки MySQL. Самоучитель. – СПб.: БХВ-Петербург, 2006. -208 с.
-
Ньюман К. Освой самостоятельно PHP. 10 минут на урок/ Ньюман К.; пер. с англ. – М. : Вильямс, 2006. – 272 с.
-
Шелдон Р. MySQL: базовый курс/ Р.Шелдон, Дж.Мойе; пер. с англ. – М. : Вильямс, 2007. – 880 с.
-
Дронов В.А. PHP, MySQL и Dreamweaver MX 2004. Разработка интерактивных WEB-сайтов/ Дронов В.А. – СПб.: БХВ-Петербург, 2005. - 448 с.
-
Ульман Л. MySQL/ Ульман Л. – СПб.: БХВ-Петербург, 2004. -352 с.
-
Кузнецов М.В. Самоучитель MySQL 5/ Кузнецов М.В. – СПб.: БХВ-Петербург, 2007. -560 с.
-
Харрис Э. PHP/ MySQL для начинающих / Харрис Э.; пер. с англ. –М.: КУДИЦ- ОБРАЗ, 2005. – 384 с.
-
Колисниченко Д.Н. Самоучитель PHP 5/ Колисниченко Д.Н. - СПб.: Наука, 2005. – 653 с.