В этом уроке я покажу Вам как удалять записи из базы данных MySql прямо из веб страницы. А в конце урока Вы сможете скачать шпаргалку по MySql запросам.
Итак, этим уроком я буду заканчивать небольшую серию уроков о том, как взаимодействовать с базой данных MySql из веб страниц. Этот урок будет меньше и легче предыдущих, особенно если Вы их прошли до этого.
Также помните, что все исходные материалы Вы можете найти в исходниках к каждому уроку.
В этом уроке я продолжу работать со структурой файлов из прошлых уроков.
На данном этапе: мы создали базу данных MySql, научились заносить в нее информацию из веб страницы, научились выводить нужные нам записи и все записи в виде списка, а также научились изменять любые поля базы данных MySql также из веб страницы.
Осталось только научиться удалять необходимые записи не заходя в саму базу данных. Это может Вам понадобиться, если Вы пишите админку для сайта или блога и в ней предусмотрено удаление записей. Или Вы позволяете Вашему пользователю загружать в базу данных какую-либо информацию о нем, но у него в любой момент должна быть возможность удалить эту информацию. В любом случае, я думаю, что в своем проекте Вы найдете применение этим знаниям.
А сейчас давайте начнем!
Удаляем записи из базы данных MySql через веб страницу
Что нам нужно сделать?
1. Нужно создать файл, в котором будут выводиться все записи (только имя и фамилия), чтобы мы могли выбрать какую из записей нужно удалить.
2. После нажатия на кнопку удалить будет подключаться файл обработчик, в который мы передадим идентификатор нужной записи и сформируем запрос на удаление.
3. В случае удачного удаления мы выведем на экран сообщение о том, что запись успешно удалена.
Теперь приступим к реализации.
1. Сначала нам нужен файл, который выведет на экран список всех записей из базы данных (в нашем случае мы будем выводить имена и фамилии пользователей).
По сути этот файл будет точно таким же, как и наш файл выбора записи для редактирования (“select_change.php”). Отличаться будет только файл-обработчик в параметре action нашей формы. И ссылки внизу, ведущие на все другие страницы приложения.
Поэтому, давайте откроем файл “select_change.php”, нажмем «Сохранить как» и дадим ему имя “select_delete.php”. Так мы получили новый файл с такой же структурой, как и у “select_change.php”.
В нем нужно будет исправить всего пару моментов.
Во-первых, добавьте во все файлы структуры ссылку на файл “select_delete.php”. Таким образом мы сможем попадать на него из любой страницы нашего мини приложения.
<a href="select_delete.php">Удалить пользователя</a><br/><br/>
Во-вторых, проверьте, чтобы с файла “select_delete.php” стояли ссылки на другие страницы (такие как: «добавить пользователя», «вернуться к поиску» и «редактировать запись»).
В-третьих, нужно поменять имя файла в параметре “action”формы. Пусть будет файл “delete.php” (его мы скоро создадим). Еще нужно поменять текст кнопочки на «Удалить».
Таким образом, код файла “select_delete.php” будет выглядеть вот так:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link rel="stylesheet" href="style.css" type="text/css">
<title>Выбор пользователя для удаления.</title>
</head>
<body>
<form action="delete.php" method="post">
<fieldset>
<?php
require 'scripts/connect.php';
$select_sql = "SELECT id, first_name, last_name FROM users";
$result = mysql_query($select_sql);
$row = mysql_fetch_array($result);
do
{
printf("<input type='radio' name='user' value='%s'>%s %s<br/><br/>", $row['id'], $row['first_name'],
$row['last_name']);
}
while($row = mysql_fetch_array($result))
?>
</fieldset>
<fieldset>
<input type="submit" value="Удалить">
</fieldset>
</form>
<a href="info_form.html">Добавить пользователя</a><br/><br/>
<a href="search_user.html">Вернуться к поиску</a><br/><br/>
<a href="select_change.php">Вернуться к выбору записей для редактирования</a><br/><br/>
</body>
</html>
2. Теперь создадим файл “delete.php” и разместим его в нашем основном каталоге.
Здесь код будет достаточно простым.
Сначала мы как всегда соединяемся с базой данных.
Затем получаем параметр “user”, в котором хранится идентификатор и заносим в переменную “$id”.
После формируем запрос к базе данных с просьбой удалить запись с таким идентификатором.
Проверяем на ошибки.
В случае их отсутствия выводим сообщение, что запись удалена успешно.
Проставляем ссылки на другие страницы, чтобы после удаления мы могли перейти туда, куда нам нужно.
Код довольно-таки короткий. Вот он:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Удаление</title>
</head>
<body>
<?php
require 'scripts/connect.php';
$id = $_REQUEST['user'];
$delete_sql = "DELETE FROM users WHERE id=$id";
mysql_query($delete_sql) or
die("<p>При удалении произошла ошибка</p>". mysql_error());
echo "<p>Запись была успешно удалена!</p>";
?>
<a href="info_form.html">Добавить пользователя</a><br/><br/>
<a href="search_user.html">Вернуться к поиску</a><br/><br/>
<a href="select_change.php">Вернуться к выбору записей для редактирования</a><br/><br/>
<a href="select_delete.php">Удалить пользователя</a><br/><br/>
</body>
</html>
А вот результат работы скрипта:
В конце прикладываю ссылку, по которой Вы можете скачать одностраничную схему-шпаргалку. Она поможет Вам при составлении запросов к базе данных. Просто распечатайте этот листок и положите (или повешайте) на своем рабочем месте. Когда будете работать с базами данных MySql и составлять к ним запросы, то всегда сможете быстро обратиться к подстказке, если что-то забыли.
На этом у меня все. Если Вам понравилась серия уроков или в чем-то помогла, то оставьте свой комментарий. Я буду Вам очень благодарна.
Также подписывайтесь на обновления блога, если Вы еще не подписались. Обещаю Вам много всего интересного и полезного. (А если в комментариях Вы напишите про что именно Вы бы хотели получать статьи и уроки, то это будет обязательно учтено).
Удачи и до новых встреч!



