В этом уроке я покажу Вам как удалять записи из базы данных 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 и составлять к ним запросы, то всегда сможете быстро обратиться к подстказке, если что-то забыли.
На этом у меня все. Если Вам понравилась серия уроков или в чем-то помогла, то оставьте свой комментарий. Я буду Вам очень благодарна.
Также подписывайтесь на обновления блога, если Вы еще не подписались. Обещаю Вам много всего интересного и полезного. (А если в комментариях Вы напишите про что именно Вы бы хотели получать статьи и уроки, то это будет обязательно учтено).
Удачи и до новых встреч!