Удаление записей из адресной книги

Довольно часто по тем или иным причинам бывает необходимо удалить какую-нибудь запись из адресной книги. Вы тоже сможете удалять записи из вашей онлайновой системы управления адресной книгой. В этой главе вы узнаете, как:

  • создать административный интерфейс для удаления записей;
  • создать сценарий для удаления записей из вашей таблицы;
  • потребовать основанной на сессии аутентификации перед тем, как сценарий просмотрит или удалит записи.
  • Использование формы для выбора записи

    Сценарий для создания формы для выбора удаляемой записи фактически идентичен сценарию создающему форму выбора записей для изменения, который мы создали в предыдущей главе. Поэтому эта глава будет очень легкой для понимания.

  • Создайте с помощью текстового редактора новый файл.
  • Начните блок РНР:
  • Чтобы, начать сессию, введите строку:
  • Чтобы начать оператор 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. Страница Система управления контактами: Удаление Контакта с открытым списком

    Теперь вы можете убедиться, что удаленная запись отсутствует среди строк открывающегося списка. Это означает, что запись действительно была удалена.

    В следующей главе вы создадите несколько страниц для отображения хранящихся в базе данных записей в режиме "только чтение".



    Hosted by uCoz