Удаление записей из адресной книги
Довольно часто по тем или иным причинам бывает необходимо удалить какую-нибудь запись из адресной
книги. Вы тоже сможете удалять записи из вашей онлайновой системы управления адресной книгой. В
этой главе вы узнаете, как:
создать административный интерфейс для удаления записей;
создать сценарий для удаления записей из вашей таблицы;
потребовать основанной на сессии аутентификации перед тем, как сценарий просмотрит или удалит записи.
Использование формы для выбора записи
Сценарий для создания формы для выбора удаляемой записи фактически идентичен сценарию
создающему форму выбора записей для изменения, который мы создали в предыдущей главе.
Поэтому эта глава будет очень легкой для понимания.
Создайте с помощью текстового редактора новый файл.
Начните блок РНР:
Чтобы, начать сессию, введите строку:
Чтобы начать оператор if. . .else для проверки значения переменной $valid,
введите текст:
Если значение переменной не равно yes, то это значит, что пользователь не прошел аутентификацию и
его нужно перенаправить на страницу с регистрационной формой и выйти из сценария.
Введите код:
Чтобы зарегистрировать переменную сессии в случае, если пользователь зарегистрирован, и закончить
оператор if. . .else, введите код:
Чтобы создать две переменные для хранения имени базы данных и имени таблицы введите строки:
Чтобы создать переменную для хранения результата функции mysql_connect ( ) используя символ @ для
подавления предупреждений и функцию die ( ) - в случаe неудачного завершения функции, введите код:
Чтобы создать переменную для хранения результата функции mysql_select_db ( ) используя символ @
для подавления предупреждений и функцию die ( ) — в случае неудачного завершения функции, введите код:
Чтобы создать переменную для хранения оператора SQL, который выберет из таблицы идентификационный
номер id, имя и фамилию лица, введите строку:
Чтобы создать переменную для хранения результата функции mysql_guery ( ), используя символ @ для
подавления предупреждений и функцию die ( ) - в случае неудачного завершения функции, введите код:
Чтобы начать цикл while, который будет создавать массив с именем $row для
каждой записи в полученном результате $result, введите код:
Чтобы получить отдельные элементы записи с присвоенными им понятными имена ми, введите строки:
Чтобы создать переменную с именем $option_block для хранения отдельных элементов в открывающемся
списке, введите строку:
Закройте оператор цикла:
Чтобы создать переменную с именем $dispiay_block для хранения формы и начать форму с методом
post и действием show_delcontact.php, введите код:
Чтобы создать подпись для открывающегося списка, введите:
Чтобы начать открывающийся список, введите код:
Чтобы поместить строку $option_block внутрь тегов <select></select> для формирования списка,
который должен содержать, по крайней мере, один элемент введите:
Чтобы завершить создание открывающегося списка, введите тег:
Чтобы добавить кнопку с надписью для передачи формы, введите строку:
Чтобы закрыть форму, строку и блок РНР, введите код:
Чтобы добавить блок HTML с заголовками, введите код:
Чтобы отобразить содержимое переменной $display_block, введите код РНР:
Чтобы создать ссылку для возврата в главное меню, введите строку:
Чтобы закрыть блок HTML, введите код:
Сохраните созданный файл с именем pic_delcontact.php в папке для документов вашего Web-сервера.
В следующем упражнении вы создадите сценарий, который отобразит значения всех полей выбранной
записи, и запросит подтверждение удаления.
Создание формы для удаления записи
форма для удаления записей не является формой в привычном понимании этого слова, потому что вам не нужно
ничего вводить в ее поля ввода. Эта страница будет отображать существующую запись в режиме только чтения,
содержать поля в скрытой форме и кнопку передачи формы.
Создайте с помощью текстового редактора новый файл.
Начните РНР-блок:
Чтобы начать оператор if. . .else для проверки обязательной переменной (в этом случае
это идентификационный номер), введите код:
В случае, если переменная $id не имеет значения, т.е. ничего не выбрано, пользователь будет
направлен на страницу, содержащую форму для выбора адресата, и выполнение сценария будет прервано:
Чтобы начать сессию, если значение $id существует, и завершить оператор if. . .else, введите код:
Чтобы начать оператор if. . .else для проверки значения переменной $valid, введите код:
Если значение переменной не равно yes, то это значит, что пользователь не прошел аутентификацию и
его нужно перенаправить на страницу с регистрационной формой и выйти из сценария.
Введите код:
Чтобы зарегистрировать переменную сессии в случае, если пользователь зарегистрирован, и
закончить оператор if. . .else, введите код:
Чтобы создать две переменные для хранения имени базы данных и имени таблицы введите строки:
Чтобы создать переменную для хранения результата функции mysql_connect(), используя символ @
для подавления предупреждений и функцию die ( ) - в случае неудачного завершения функции, введите код:
Чтобы создать переменную для хранения результата функции mysql_select_db( ), используя символ @
для подавления предупреждений и функцию die ( ) - в случае неудачного завершения функции, введите код:
Чтобы создать оператор SQL, который выберет все поля, кроме поля id, в записи, где значение поля id
равно значению переменной $id, введите код:
Чтобы создать переменную для хранения результата функции mysql_query( ), используя символ @ для
подавления предупреждений и функцию die ( ) - в случае неудачного завершения функции, введите код:
Чтобы создать оператор цикла while, который создает массив с именем $row для каждой записи в
полученном результате $result, введите код:
Чтобы получить значение каждого элемента массива отдельно и присвоить им именa, введите код:
Чтобы завершить оператор цикла, введите:
Чтобы закрыть блок РНР, введите:
Чтобы начать блок HTML и построить форму для подтверждения удаления записи, введите код:
Чтобы начать форму, использующую метод post и действие do_delcontact.php, введите строку:
Чтобы создать скрытое поле для хранения значения переменной $id, введите строку:
Чтобы добавить еще два скрытых поля для хранения значений переменных $fname $lname, введите код:
Эти скрытые поля будут использоваться для отображения на заключительной странице сообщения об удалении
записи после того, как удаление произойдет.
Чтобы начать таблицу, которая поможет лучше расположить поля формы, введите строку:
Таблица будет содержать два столбца с заголовками.
Чтобы создать первую строку таблицы с заголовками двух столбцов, введите код:
Создайте новую строку таблицы и ячейку, содержащую поле ввода с подписью для ввода имени:
В той же самой ячейке отобразите подпись и фамилию:
В той же самой ячейке отобразите подпись и первую строку адреса:
В той же самой ячейке отобразите подпись и вторую строку адреса:
В той же самой ячейке отобразите подпись и третью строку адреса:
В той же самой ячейке отобразите подпись и значение почтового индекса:
В той же самой ячейке отобразите подпись и значение страны и закройте ячейку HTML-таблицы:
Чтобы начать новую ячейку HTML-таблицы и отобразить в ней подпись и значение номера домашнего телефона, введите код:
В той же самой ячейке отобразите подпись и значение номера служебного или сотового телефона:
В той же самой ячейке отобразите подпись и значение адреса электронной почты:
В той же самой ячейке отобразите подпись и значение даты дня рождения, закройте ячейку и строку HTML-таблицы:
Чтобы начать новую строку HTML-таблицы с объединенными ячейками, содержащую кнопку с надписью для передачи формы и
ссылку для возврата к административному меню, введите код:
Чтобы закрыть ячейку, строку и саму таблицу HTML, введите код:
Чтобы закрыть форму и завершить HTML-документ, введите код:
Сохраните созданный файл с именем show_delcontact.php в папке для документов вашего Web-сервера.
В следующем упражнении вы создадите сценарий, который возьмет значение $id, хранящееся в скрытом поле формы и
удалит соответствующую ей запись из базы данных.
Создание сценария для удаления записи
Сценарий, который мы создадим в этом знакомстве, будет удалять выбранную запись и таблицы
my_contacts, используя значение переменной $id в качестве первичного ключа.
Создайте с помощью текстового редактора новый файл.
Начните блок РНР:
Чтобы начать оператор if. . .else для проверки обязательной переменной (в этом случае
это идентификационный номер), введите код:
В случае, если переменная $id не имеет значения, т.е. ничего не выбрано, пользователь будет
направлен на страницу, содержащую форму для выбора адресата, и выполнение сценария будет прервано:
Чтобы начать сессию, если значение $id существует, и завершить оператор if. . .else, введите код:
Чтобы начать оператор if. . .else для проверки значения переменной $valid, введите код:
Если значение переменной не равно yes, то это значит, что пользователь не прошел аутентификацию и
его нужно перенаправить на страницу с регистрационной формой и выйти из сценария.
Введите код:
Чтобы зарегистрировать переменную сессии в случае, если пользователь зарегистрирован, и
закончить оператор if. . .else, введите код:
Чтобы создать две переменные для хранения имени базы данных и имени таблицы введите строки:
Чтобы создать переменную для хранения результата функции mysql_connect(), используя символ @
для подавления предупреждений и функцию die ( ) - в случае неудачного завершения функции, введите код:
Чтобы создать переменную для хранения результата функции mysql_select_db( ), используя символ @
для подавления предупреждений и функцию die ( ) - в случае неудачного завершения функции, введите код:
Чтобы создать оператор SQL, который выберет все поля, кроме поля id, в записи, где значение поля id
равно значению переменной $id, введите код:
Чтобы создать переменную для хранения результата функции mysql_query( ), используя символ @ для
подавления предупреждений и функцию die ( ) - в случае неудачного завершения функции, введите код:
Чтобы закрыть блок РНР, введите:
Чтобы начать блок HTML, введите текст:
Чтобы добавить сообщение, подтверждающее удаление записи, и ссылку для возврата к
главному меню, введите код:
Чтобы закрыть блок HTML, введите код:
Удаление записей
Теперь все готово, чтобы удалить любую запись из вашей адресной книги. Если вы не закрывали окно
вашего браузера, то его рабочее окно должно содержать главное меню, и вам не нужно заново проходить
аутентификацию. Если вы закрыли рабочее окно браузера, то выполните следующие действия:
Запустите свой Web-браузер, в поле ввода Адрес введите
http://localhost/contact_menu.php
и нажмите клавишу Enter.
В рабочее окно браузера будет загружена страница Система управления контактами (Рис. 14.1).
В поле ввода Имя пользователя admin.
В поле ввода Пароль введите abc123.
Нажмите кнопку ОК. В рабочее окно браузера будет загружена страница Система управления
контактами с главным меню (Рис. 14.3).
Щелкните мышью на ссылке Удалить контакт. В рабочее окно браузера будет загружена страница
Система управления контактами: Удаление Контакта (Рис. 17.1).
Рис. 17.1. Страница Система управления контактами: Удаление Контакта
Загруженная страница содержит открывающийся список Контакт для выбора удаляемой
записи, кнопку Выбрать для передачи формы и ссылку Возврат к Главному Меню для возврата
на страницу с главным меню.
Из открывающегося списка Контакт выберите любую строку для удаления и нажмите кнопку
Выбрать. В рабочее окно браузера будет загружена страница Система Управления контактами:
Удаление Контакта с подробной информацией об удаляемой записи (Рис. 17.2).
Рис 17.2. Страница Система управления контактами: Удаление Контакта
с информацией об удаляемой записи
Данные поля День рождения (ГГГГ-ММ-ДД) отображены, как 0000-00-00, потому что при заполнении
таблицы эти данные не были указаны. При чтении пустого поля типа дата, MySQL возвращает
значение, установленное по умолчанию.
Нажмите кнопку Удалить. В рабочее окно браузера будет загружена страница с подтверждением
удаления записи (Рис. 17.3).
Рис. 17.3. Страница Система управления контактами: Контакт Удален
Чтобы убедиться, что запись действительно была удалена, выполните следующие действия:
Щелкните мышью на ссылке Возврат к Главному Меню. В рабочее окно браузера будет
загружена страница Система управления контактами с главным меню (Рис. 14.3).
Щелкните мышью на ссылке Удалить контакт. В рабочее окно браузера будет загружена
страница Система управления контактами: Удаление Контакта (Рис. 17.1).
Нажмите кнопку ,
расположенную в правой части открывающегося списка, чтобы открыть его.
Вид рабочего окна изменится, как показано на Рис. 17.4.
Рис. 17.4. Страница Система управления контактами: Удаление Контакта
с открытым списком
Теперь вы можете убедиться, что удаленная запись отсутствует среди строк открывающегося списка.
Это означает, что запись действительно была удалена.
В следующей главе вы создадите несколько страниц для отображения хранящихся в базе данных записей
в режиме "только чтение".
|