Изменение информации в базе данных MySql из веб страницы
Продолжаем серию уроков по работе с базами данных MySql. В этом уроке мы научимся редактировать информацию в базе данных MySql прямо из веб страницы.
Такие возможности могут Вам понадобиться, когда Вы предоставляете пользователю Вашего ресурса заполнять свой профиль, а также редактировать его. Также эти знания пригодятся, если Вы пишите администраторский раздел для сайта и хотите иметь возможность редактирования записей не заходя в базу данных.
В прошлых уроках мы создали базу данных MySql, заполнили ее, создали код для вывода информации из базы, а также для внесения новых записей в базу прямо из веб страницы.
В данном уроке я продолжу использовать уже имеющуюся структуру файлов. Все файлы данного урока есть в исходниках к этому уроку.
Редактируем запись в базе данных MySql из веб страницы.
1. Создаем кнопку, которая будет запрашивать все записи из базы.
2. Создать файл, в котором списком будут выводиться все имеющиеся в базе данных записи (для того, чтобы выбрать ту, которую хотим редактировать).
3. При выборе определенной записи в работу включается файл-обработчик, который забирает из базы данных всю информацию по нужной нам записи.
4. Выбранная информация вставляется в поля формы для редактирования, которую мы создадим.
5. После редактирования, при помощи определенного SQL-запроса информация отправляется на обновление в базу данных MySql.
1. Первое, что мы сделаем – это создадим файл “select_change.php” и разместим его в том же каталоге, что и все наши основные файлы (то есть в основном каталоге).
Пока мы не начали с ним работать давайте откроем файлы: “search_user.html”, “info_form.html”, “select_user.php”, “all_users.php” и добавим ссылку на этот файл для того, чтобы он был доступен из всех файлов нашего приложения (это для удобства, чтобы каждый раз не прописывать его адрес в адресной строке, когда мы будем тестировать наши веб страницы).
Добавляем следующую строку в каждый из файлов перед закрывающим тегом body.
2. Теперь откроем сам файл “select_change.php”. Мы будем выводить только имя и фамилию из базы для выбора пользователя, информацию о котором мы хотим редактировать.
Для этого сначала мы сформируем запрос к базе данных, который скажет выбрать все записи из базы, а затем выведем списком имена и фамилии каждого человека.
Выводить данные мы будем как радиокнопки. Это мы делаем для того, чтобы можно было выбрать пользователя (притом только одного).
Из базы мы будем запрашивать только 3 параметра: это id, first_name, last_name. Последние два будут выводиться на экран для того чтобы мы могли определиться какую информацию из базы данных будем редактировать. Параметр же id будет невидим (он будет значением атрибута value), но он необходим для того, чтобы программа могла идентифицировать в базе данных выбранный элемент (фамилии и имена могут повторяться, а id всегда индивидуален).
Обратите также внимание на способ вывода информации в этом файле. Вы можете увидеть такие символы как %s.
Принцип здесь такой: в двойных кавычках в функции “printf” выводится html код, вместо определенной переменной (например, такой как “$row[‘first_name’]”) мы ставим якоря – %s. А после того как закрылись двойные кавычки, мы перечисляем эти переменные, соответствующие поставленным якорям. Это удобно, когда работаешь с функцией “printf”, однако следует следить за порядком якорей и перечисляемых переменных, так как они будут подставлены именно в том порядке, в котором Вы их перечисляете.
Все это заключено в тег формы, в которой action=”edit.php”. Файл edit.php мы создадим в следующем шаге.
Итак, код нашего файла “select_change.php” будет выглядеть следующим образом:
Добавить пользователя
Вернуться к поиску
А если загрузить страницу в браузере, то можно увидеть примерно следующее:
3. Создайте файл “edit.php” и поместите его там же в основном каталоге.
Этот файл является файлом-обработчиком нашего предыдущего файла. В нем будет выводиться форма и автоматически заполняться информацией из базы данных MySql той записи, которую мы выбрали.
Кроме того, в этой форме можно будет изменить один или несколько параметров (например, имя, фамилию и т.д.).
Во-первых, программа должна понимать, какую запись Вы от нее требуете. А для этого должен быть передан параметр id. Имя для input в прошлом файле мы дали – ”user”, там же у нас хранится в атрибуте value нужный id. А следовательно получить его можно запросив при помощи “$_REQUESR[‘user’]”. И далее занести результат в переменную ”$id”.
Во-вторых, нужно сформировать запрос, который будет выводить из нашей таблицы базы данных всю информацию о записи с указанным идентификатором.
В-третьих, нужно исполнить этот запрос и вывести каждый параметр в предусмотренное для него поле (в атрибутах value).