отправка данных формы в базу данных
УЧЕБНЫЕ МАТЕРИАЛЫ
Web-верстка, компьютерная графика,
мультимедиа
Уроки PHP и MySQL
Уроки PHP и MySQL. Урок 5. Формы и базы данных в web
Урок посвящен языку PHP и базе данных MySQL. Рассматривается взаимодействие PHP и MySQL, способы занесения данных из формы в базу данных и вывод данных из базы на web-страницу.
В данном уроке PHP и MySQL Вам предстоит решить следующие задачи:
1. Создать базу данных, содержащую две таблицы: справочник пород кошек, таблицу сведений о потерявшихся животных.
2. Создать web-страницу, на которых будут размещена форма для подачи объявлений о потерявшихся кошках. Данные из этих объявлений заносятся в соответствующую таблицу сведений о потерявшихся животных.
3. Создать web-страницу, позволяющую просматривать информацию из базы данных. Данные в таблицы базы данных будут вноситься из объявлений, размещенных посетителями на сайте.
Задание № 1. Создание базы данных
Наши уроки PHP и MySQL начнем с создания базы данных.
Сначала необходимо создать таблицу-справочник пород и таблицу сведений о потерявшихся животных. Структура таблиц следующая:
Название поля | Имя поля | Тип поля | Описание |
идентификационный номер породы | id | Числовой | |
название породы | name_por | Символьный | |
характеристика породы | describe_por | Символьный | В поле хранится имя файла, который содержит описание породы и фотографию. |
Сведения о потерявшихся кошках
Название поля | Имя поля | Тип поля | Описание |
идентификационный номер кошки | id | Числовой | |
порода | por | Символьный | |
дата нахождения кошки: день месяц год | day month year | Символьный Символьный Символьный | |
место нахождения кошки | place | Символьный | |
пол кошки | pol | Символьный | |
возраст кошки | age | Символьный | Если возможно указать примерный возраст |
описание кошки | outline | Символьный | Окрас, состояние здоровья и т. д. |
координаты нашедшего | contact | Символьный | Любая контактная информация: телефон, e-mail, адрес |
дополнительная информация | dop_info | Символьный | Например, кошка больна, есть клеймо, кормящая и пр. |
В наших уроках PHP и MySQL рассмотрим два способа создания таблицы базы данных.
1. С помощью клиента MySQL.
Способ 1. Создание базы данных с помощью клиента MySQL
1. Запустите Denwer ярлыком Start Denwer.
3. Создайте новую базу данных. Для этого впишите в поле Создать базу данных имя базы catsdb, кодировку установите utf8_general_ci и нажмите кнопку Создать (рис. 2).
4. Если все было выполнено верно, то будет выведено сообщение об удачном создании базы.
5. Перейдите в базу данных catsdb, нажав соответствующую строку в левой панели (рис. 3).
6. Добавьте в базу данных таблицу Справочник пород, назовите ее: spravpor (структура таблицы и назначение полей приведены в таблице 1 Справочник пород). Для этого:
b. В открывшемся окне заполните данные по структуре таблицы (рис. 5).
c. После заполнения всех полей нажмите Сохранить. Перейдите в таблицу spravpor, нажав соответствующую строку в левой панели (рис. 6).
d. Откроется сама таблица (рис. 7).
Способ 2. Создание базы данных средствами PHP
В данном уроке PHP и MySQL создадим таблицу с помощью сценария PHP, но при этом база данных должна уже быть создана! В листинге 1 приведена программа создания таблицы под именем species средствами PHP. Структура таблицы species аналогична структуре таблицы spravpor.
1. Проанализируйте приведенные в листинге 1 PHP-сценарий и комментарии к нему в файле species.php.
2. Реализуйте код из листинга 1. Для этого:
3. После выполнения сценария убедитесь, что таблица species создана в базе данных catsdb (рис. 9, 10).
Листинг 1. Создание таблицы с помощью сценария PHP (файл species.php)
Комментарии к листингу 1:
1. Здесь адрес сервера MySQL — localhost (такой адрес указывается в случае если работа с базой данных ведется на локальном компьютере или компьютере где располагаются файлы с php-сценариями).
4. Любой файл, содержащий PHP-сценарий, имеет расширение php, независимо от того, встроен сценарий в HTML-текст или полностью написан на PHP.
5. Многострочные комментарии должны начинаться с символов /* и завершаться символами*/. Однострочные комментарии предваряются символами //. Закрывать их не нужно.
6. В языке PHP имя переменной начинается со знака доллара ($), за которым следует собственно имя переменной. В именах переменных различаются верхний и нижний регистры. Имя переменной должно начинаться с буквы или символа подчеркивания, за которыми могут следовать буквы, цифры или знаки подчеркивания. Буквы должны быть из диапазона A—Z.
7. В конце каждого оператора php обязательно ставится точка с запятой.
8. Функции для работы с MySQL имеют префикс mysql_ (см. приложение 2).
В нашем уроке PHP и MySQL, используя программу из листинга 1 в качестве образца, напишите сценарий PHP для создания таблицы сведений о потерявшихся кошках (см. таблицу 2). Таблицу назовите catspotery, а файл сценария catspotery.php. Результат на рис. 11, 12
Добавление записи в базу данных
Мы подготовили таблицы базы данных. Сейчас на web-странице разместим форму подачи объявлений для тех, кто потерял кошку. Задача — обеспечить занесение информации из форм в соответствующие таблицы базы данных.
Примерный вид формы представлен на рис. 13.
При выполнениии данного урока PHP и MySQL создайте web-страницу с формой, как на рис. 13. Сохраните под именем forma_cats.html. В качестве файл-обработчика укажите poter_dobavl.php. Не забывайте о корреляции полей формы и полей соответствующей таблицы в базе данных и кодировка файла должна быть в utf-8 (Кодировка – Преобразовать в UTF-8).
1. Используя программу из листинга 2 в качестве образца, напишите PHP-сценарии, осуществляющие вставку записей в таблицы сведений о пропавших кошках.
2. Проверьте работоспособность формы. В базу данных (рис. 14) должна сохраняться информация, введенная в форму (рис. 13).
3. Наполните базу 5-ю записями.
Листинг 2. Занесение данных формы в базу данных (файл poter_dobavl.php)
Извлечение записей из базы данных
В нашем уроке PHP и MySQL Вы реализовали технологию заполнения базы данных.
Теперь необходимо реализовать задачу вывода информации из базы данных. Т.е. необходимо представить на сайте информацию из базы данных в следующем виде:
Код сценария, представленный в листинге 3, выводит информацию из базы данных на web-страницу, в соответствии с рисунком 15.
Листинг 3. Вывод информации из базы данных на Web-страницу. Передача параметров (файл vivod_poter.php)
Изучите код сценария из листинга 3 и реализуйте его. Проверьте работоспособность сценария.
Реализуйте возможность работы со справочником пород spravpor. Для этого:
1. Добавьте к созданной таблице поле foto, в котором будет храниться ссылка на фотографию породы.
2. Используя запросы SQL (рис. 16), заполните базу 3-мя записями про породы кошек (длинношерстные, полудлинношерстные, короткошерстные) (рис. 17). Все необходимые материалы находятся в папке cats.
3. Реализуйте web-страницу, на которую выводятся данные из справочника пород. У каждой породы должна быть фотография.
4. Если скрипт обрезает описание породы, увеличьте длину поля describe_por, чтобы можно было вводить длинные описания.
Website-create.ru
В этом уроке мы научимся вносить в базу данных MySql, данные введенные пользователем в форму. Вы узнаете, как соединяться с базой данных MySql из кода веб страницы, а также обрабатывать и вносить данные в базу.
В прошлом уроке я рассказала Вам о том, как установить Денвер на Ваш компьютер, как создать свою базу данных, пользователя для нее, как создать таблицу в базе данных и мы заполнили ее одной записью.
В этом уроке мы создадим html документ для ввода пользовательской информации, а также php файл-обработчик этой информации, который будет обрабатывать данные, соединяться с базой данных MySql и вставлять туда новые записи.
Переходя от слов к делу давайте начнем.
Добавляем пользовательские данные в базу MySql с веб страницы
Первый этап: создаем html форму для ввода данных
С самого начала нам нужно подготовиться к работе с php, MySql и к тестированию написанного кода на локальном компьютере. Для этого:
1. Запустите Denwer на своем компьютере.
2. Откройте виртуальный диск, созданный Денвером (например у меня это диск “Z”). Откройте его, дальше: home – localhost – www – там создайте новую папку и дайте ей название (я дам название “db1”).
3. Если Вы работаете в Adobe Dreamweaver, то зайдите в менеджер сайтов, там нажмите на кнопку «New», в качестве пути выберите путь до только что созданной папки, в поле выше можете дать имя сайту, после этого нажмите Save – Done. После всего этого в правой панели Adobe Dreamweaver появится Ваша папка.
1. Сейчас мы создадим обычный html файл (назовем его info_form.html и сохраним в только что созданной папке db1) и пропишем там код формы для ввода информации. В нашей таблице users базы данных new_db есть 4 поля, которые мог бы заполнить пользователь (поле id будет заполняться автоматически). Исходя из этого можно создать код следующего вида:
Здесь в параметре «action» нашей формы прописан файл form.php. Он будет являться файлом обработчиком, который мы создадим далее.
Давайте еще создадим файл style.css для придания стилей нашей форме. Он уже подключен в коде, так что осталось только создать его, поместить в ту же папку, что и html файл и прописать в нем следующий код:
Теперь форма выглядит следующим образом:
Однако, если Вы введете данные и попытаетесь отправить форму, то увидите ошибку, так как никакого файла form.php, лежащего в каталоге scripts не существует.
Создать файл-обработчик – это наша следующая задача.
2. Давайте внутри папки db1 создадим папку с названием «scripts». В ней мы будем сохранять все наши скрипты взаимодействия с базой данных MySql.
После того как папка будет создана, создайте новый php файл и сохраните его в папке scripts под именем form.php.
Но перед тем как заняться непосредственно файлом-обработчиком информации нужно сначала подключиться к нашей базе данных. Я предлагаю создать для этого отдельный файл и вот почему:
Скорее всего в Вашем проекте Вам придется соединяться с базой данных MySql не только из одного файла. Как правило с базой данных взаимодействуют различные файлы проекта.
Очень непрактично в каждом таком файле прописывать один и тот же код подключения к базе. А если таких файлов, например, будет 50 и в один прекрасный день вы смените пароль для пользователя и Вам придётся искать все эти 50 файлов и в каждом делать исправление.
Гораздо удобнее использовать для подключения отдельный файл, который будет подключен к каждому из файлов, где должно быть соединение с базой данных MySql. В таком случае вносить исправления нужно будет только в один файл.
Итак, давайте создадим новый php файл, назовем его connect.php и поместим в папку для скриптов. В нем пропишем код соединения с нашей базой данных MySql, а также код, который будет сообщать об ошибках в случае их возникновения. Обратите внимание, что в качестве параметров Вам необходимо будет прописать Ваше имя пользователя, Ваш пароль и Ваше имя базы данных. В качестве хоста должен быть localhost.
Теперь перейдем в файл form.php и подключим в него файл connect.php с помощью следующего кода:
Если сейчас Вы попробуете отправить форму, то увидите после отправки пустую веб страницу. Это нормально, так как мы просто соединились с базой и пока больше ничего не выводим.
Если Вы увидели сообщение об ошибке, то проверьте правильность всех параметров (имя пользователя, пароль, имя хоста: localhos, имя базы данных), а также будьте уверены, что Ваш Денвер включен.
3. Мы удачно соединились с базой данных MySql, а теперь нам нужно принять введенные в форму данные в наш файл обработчик. В этом нам помогут атрибуты “name”, которые присутствуют в html документе.
Для получения данных мы воспользуемся специальной переменной php, снабжающей нас всей информацией из веб-формы. Эта переменная называется “$_REQUEST”.
Пропишите в файле form.php после подключения файла connect.php следующий код:
4. Данные в файл мы получили и занесли их в переменные. Теперь нужно отправить эти данные в нашу таблицу базы данных MySql. Для этого ниже нужно прописать следующий код:
Здесь сначала мы формируем запрос, говоря, что нам нужно вставить соответствующие переменные в соответствующие поля таблицы “users”. Заносим этот запрос в переменную “$insert_sql”. А потом с помощью специальной функции mysql_query исполняем данный запрос.
Если сейчас Вы заполните и отправите форму, а потом посмотрите в таблицу “users” Вашей базы данных, то увидите новую запись, которая там появилась после отправки.
5. Мы вставили новую запись из веб страницы в таблицу базы данных MySql. Теперь хочется немного коснуться того формата, в котором вставляются наши данные.
Во-первых, нужно позаботиться о той ситуации, когда человек, заполняя форму может поставить ненужные пробелы в начале ввода информации. Их нужно обрезать.
Во-вторых, у нас существует поле для Facebook. Если мы в последующем захотим выводить эту информацию как ссылку, то необходимо позаботиться, чтобы данные в этом поле хранились в правильном формате (то есть «http://www.facebook.com/идентификатор на facebook»). Но пользователь не всегда будет вводить эти данные так как нам нужно. Он может ввести: “www.facebook.com/идентификатор на facebook”, “facebook.com/идентификатор на facebook” или просто “/идентификатор на facebook”.
Этих ситуаций нужно избегать. Для этого давайте подкорректируем наш код. Возможные лишние пробелы мы обрежем при помощи функции trim, а проверять правильность введенного url для facebook будет функция preg_match. Таким образом весь код файла form.php будет выглядеть следующим образом:
О функции preg_match:
Это функция для поиска с регулярными выражениями.
Первый параметр в скобках – это регулярное выражение, второй – строка, где нужно искать.
Функция возвращает только первое совпадение: 0 – если совпадений нет, 1 – если совпадение есть.
Попробуйте теперь намеренно заполнить форму, сделав ненужные пробелы в начале заполнения какого-нибудь из полей и введя адрес для facebook без http:// или вообще введя только идентификатор facebook. Отправьте запрос, а потом перейдите в базу данных и Вы увидите, что несмотря на не совсем корректное заполнение, данные имеют именно тот вид, который нам нужен.
На этом буду заканчивать данный урок. Все файлы этого урока Вы можете скачать в исходниках (только не забудьте исправлять параметры на свои в файле connect.php).
А в следующем уроке мы научимся извлекать информацию из базы данных MySql, выбирать нужные записи и выводить их на экран. Чтобы не пропустить следующий урок подписывайтесь на обновления блога с помощью формы подписки, которую Вы видите ниже.
Оставляйте свои комментарии и делитесь с друзьями с помощью кнопок социальных сетей.
Отправка формы данных в базу данных Microsoft Access
В этой статье
Обзор
При разработке шаблона формы Microsoft Office InfoPath, основанного на Microsoft Office Access (MDB) или базы данных Microsoft Office Access 2007 (ACCDB-файл), мастера подключения данных создается подключения для отправки данных в базу данных при следующих условиях выполнено.
Шаблон формы разработан, чтобы пользователи должны заполнить его с помощью InfoPath. Если будет заполнить форму с помощью веб-браузера, форме невозможно отправить данные непосредственно в базу данных. Чтобы настроить шаблон формы с поддержкой веб-браузера для отправки данных в базу данных, используйте подключение к данным, который отправляет данные веб-службы, работающих в базе данных.
Таблица основной базы данных, которая используется в основного подключения данных содержит первичный ключ, уникальности или уникальный индекс.
Другие таблицы базы данных, используемые с этой основное подключение к данным обладают простой, иерархические отношения к таблице основной базы данных.
Базы данных не содержит полей, которые можно хранить большой двоичный тип данных, например рисунков, изображения, объекты OLE, вложенных файлов, тип данных Office Access записок или SQL текстовый тип данных.
Если эти требованиям в базе данных, InfoPath создает подключения для отправки данных и добавляет кнопку Отправить на стандартной панели инструментов и команды Отправить в меню » файл » в форме.
Примечание: Подключения к данным вспомогательной невозможно отправить данные в базу данных. Если вы хотите использовать в качестве дополнительного подключения данных подключения для отправки данных в базу данных, определите веб-службы, работающих в базе данных и добавьте подключения для отправки данных для этой веб-службы.
После включения подключения для отправки данных, вы можете настроить параметры отправки для шаблона формы следующими способами.
Измените текст, который отображается кнопка » Отправить » на стандартной панели инструментов и в меню файл команду Отправить.
Изменение сочетания клавиш для кнопка » Отправить » на стандартной панели инструментов и в меню файл команду Отправить.
Создайте пользовательские сообщения для отображения пользователям, когда они отправлять свои формы.
Укажите, следует ли закрывать форму, закройте форму, или откройте другой пустая форма после отправки формы.
Шаг 1: Включение подключения для отправки данных
В меню Сервис выберите пункт Подключения к данным.
В диалоговом окне Подключения к данным нажмите кнопку основного подключения данных и нажмите кнопку Изменить.
в мастере подключения к данным нажмите кнопку Далее;
На следующей странице мастера установите флажок Разрешить отправку для этого подключения и нажмите кнопку Готово.
Действие 2: Настройте параметры отправки
После включения подключения для отправки данных InfoPath добавляет кнопку Отправить на стандартной панели инструментов и команды Отправить в меню » файл «. InfoPath также настраивает форм, основанных на этом шаблоне формы для отображения сообщения пользователям после отправки их заполненных форм. Это сообщение о том, успешно отправить форму. По умолчанию InfoPath также хранит форму открыть после его отправки. Чтобы изменить текст, который отображается на кнопку Отправить, а также поведение, которое должно состояться после отправки формы, сделайте следующее:
В меню Сервис выберите пункт Параметры отправки.
Чтобы изменить имя кнопка » Отправить «, которая появляется на стандартной панели инструментов и команды Отправить, которое отображается в меню файл при заполнении формы пользователями, введите новое имя в поле заголовок отправки Параметры диалоговое окно.
Совет: Если вы хотите назначить сочетание клавиш для этой кнопки и команды, введите амперсанд (&) перед символом, который вы хотите использовать в качестве сочетания клавиш. Например чтобы назначить сочетание клавиш ALT + B как сочетание клавиш для отправки кнопок и команд, введите в u & Правка.
Если не хотите, чтобы пользователи могут использовать команду Отправить или кнопка » Отправить » на панели инструментов Стандартная при заполнении формы, снимите флажок Показывать отправки в меню и панели инструментов кнопка «Отправить».
По умолчанию после отправки формы InfoPath хранит открыть форму и отображает сообщение для указания был успешно отправить форму. Чтобы изменить поведение по умолчанию, нажмите кнопку Дополнительно, а затем выполните одно из следующих действий:
Чтобы закрыть форму или создать новую пустую форму после пользователь отправляет заполненной формы, выберите нужный вариант в списке после отправки.
Чтобы создать настраиваемое сообщение для указания был успешно отправить форму, установите флажок использовать настраиваемые сообщения и введите ваши сообщения в полях на успеха и в случае ошибки.
Совет: Использовать сообщение в поле на сбой объясняющий, что делать, если они не могут отправить их формы. Например может предложить что пользователи сохранения формы и связаться с другим человеком дополнительную информацию.
Если вы не хотите отобразить сообщение после отправки формы, снимите флажок Показывать Успех и отказ сообщения.
Запись в базу данных mysql на php через форму
Рассмотрим на примере, как создать форму, с помощью которой мы будем делать запросы в базу данных mysql на языке php, используя PDO.
1. Создадим разметку html-формы
Форма отправляется методом POST и обрабатывается на текущей странице.
2. Создадим таблицу, в которую будем записывать данные
Можно выполнить через SQL в PhpMyAdmin или ручками.
3. Подключимся к базе данных и напишем запрос для записи.
Подключимся к базе данных.
Кодировку установили, чтобы избежать лишних проблем (не обязательно).
Не забудьте заранее создать таблицу в базе данных с трёмя значениями (id, name, text), подробнее об этом читать здесь.
Далее напишем наш запрос для записи в базу данных и запишем его в переменную.
Создадим небольшую проверку, чтобы знать, выполнился ли наш запрос или нет.
4. Подключение формы к запросу
Форму создали, к базе подключились и написали запрос, теперь нужно связать всё это.
Форма отправляется методом POST, поэтому мы можем сделать проверку на него, а именно на любое поле формы.
У нас передаются поля с именами «name» и «text», на них мы и сделаем проверку.
Вставим весь наш скрипт в эту проверку:
То есть, если существует значения «name» и «text» переданные методом POST, то выполняется подключение к БД и запись в таблицу.