ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 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, що відкриває шлях для виконання запиту і виводу результатів

Отже, ми розглянули основні прийоми використання баз даних для створення веб-ресурсів. У другій частині рекомендацій представлені завдання для лабораторних робіт і приклади їх виконання.


РЕКОМЕНДОВАНА ЛІТЕРАТУРА

  1. Хольцнер С. РНР в примерах/ С. Хольцнер; пер. с англ. — М.: ООО «Бином-Пресс», 2007. — 352 с.: ил.

  2. Конверс Т. PHP 5 и MySQL. Библия пользователя/ Конверс Т., Дж. Парк, К. Морган; пер.с англ. - М.: Вильямс, 2007.- 1216 с.

  3. Веллинг Л. MySQL: учеб. пособ./ Л.Веллинг, Л.Томсон; пер. с англ. – М.: Издательский дом «Вильямс», 2005. – 304 с.

  4. Мотев А.А. Уроки MySQL. Самоучитель. – СПб.: БХВ-Петербург, 2006. -208 с.

  5. Ньюман К. Освой самостоятельно PHP. 10 минут на урок/ Ньюман К.; пер. с англ. – М. : Вильямс, 2006. – 272 с.

  6. Шелдон Р. MySQL: базовый курс/ Р.Шелдон, Дж.Мойе; пер. с англ. – М. : Вильямс, 2007. – 880 с.

  7. Дронов В.А. PHP, MySQL и Dreamweaver MX 2004. Разработка интерактивных WEB-сайтов/ Дронов В.А. – СПб.: БХВ-Петербург, 2005. - 448 с.

  8. Ульман Л. MySQL/ Ульман Л. – СПб.: БХВ-Петербург, 2004. -352 с.

  9. Кузнецов М.В. Самоучитель MySQL 5/ Кузнецов М.В. – СПб.: БХВ-Петербург, 2007. -560 с.

  10. Харрис Э. PHP/ MySQL для начинающих / Харрис Э.; пер. с англ. –М.: КУДИЦ- ОБРАЗ, 2005. – 384 с.

  11. Колисниченко Д.Н. Самоучитель PHP 5/ Колисниченко Д.Н. - СПб.: Наука, 2005. – 653 с.