Блог Анны Котельниковой | ||
Вносим пользовательские данные в базу данных MySqlВ этом уроке мы научимся вносить в базу данных MySql, данные введенные пользователем в форму. Вы узнаете, как соединяться с базой данных MySql из кода веб страницы, а также обрабатывать и вносить данные в базу.
В прошлом уроке я рассказала Вам о том, как установить Денвер на Ваш
компьютер, как создать свою базу данных, пользователя для нее, как
создать таблицу в базе данных и мы заполнили ее одной записью. Добавляем пользовательские данные в базу MySql с веб страницыПервый этап: создаем html форму для ввода данных
С самого начала нам нужно подготовиться к работе с php, MySql и к
тестированию написанного кода на локальном компьютере. Для этого: 1. Сейчас мы создадим обычный html файл (назовем его info_form.html и сохраним в только что созданной папке db1) и пропишем там код формы для ввода информации. В нашей таблице users базы данных new_db есть 4 поля, которые мог бы заполнить пользователь (поле id будет заполняться автоматически). Исходя из этого можно создать код следующего вида:
Здесь в параметре «action» нашей формы прописан файл form.php. Он будет являться файлом обработчиком, который мы создадим далее.
Теперь форма выглядит следующим образом: Скорее всего в Вашем проекте Вам придется соединяться с базой данных MySql не только из одного файла. Как правило с базой данных взаимодействуют различные файлы проекта. Очень непрактично в каждом таком файле прописывать один и тот же код подключения к базе. А если таких файлов, например, будет 50 и в один прекрасный день вы смените пароль для пользователя и Вам придётся искать все эти 50 файлов и в каждом делать исправление. Гораздо удобнее использовать для подключения отдельный файл, который будет подключен к каждому из файлов, где должно быть соединение с базой данных MySql. В таком случае вносить исправления нужно будет только в один файл. Итак, давайте создадим новый php файл, назовем его connect.php и поместим в папку для скриптов. В нем пропишем код соединения с нашей базой данных MySql, а также код, который будет сообщать об ошибках в случае их возникновения. Обратите внимание, что в качестве параметров Вам необходимо будет прописать Ваше имя пользователя, Ваш пароль и Ваше имя базы данных. В качестве хоста должен быть localhost. Теперь перейдем в файл form.php и подключим в него файл connect.php с помощью следующего кода:
Если сейчас Вы попробуете отправить форму, то увидите после отправки
пустую веб страницу. Это нормально, так как мы просто соединились с
базой и пока больше ничего не выводим. 4. Данные в файл мы получили и занесли их в переменные. Теперь нужно отправить эти данные в нашу таблицу базы данных MySql. Для этого ниже нужно прописать следующий код:
Здесь сначала мы формируем запрос, говоря, что нам нужно вставить
соответствующие переменные в соответствующие поля таблицы “users”.
Заносим этот запрос в переменную “$insert_sql”. А потом с помощью
специальной функции mysql_query исполняем данный запрос.
О функции preg_match:
Это функция для поиска с регулярными выражениями.
Попробуйте теперь намеренно заполнить форму, сделав ненужные пробелы в
начале заполнения какого-нибудь из полей и введя адрес для facebook без
http:// или вообще введя только идентификатор facebook. Отправьте
запрос, а потом перейдите в базу данных и Вы увидите, что несмотря на не
совсем корректное заполнение, данные имеют именно тот вид, который нам
нужен. Понравилась статья? Поделись с друзьями! Будьте в курсе новых публикаций на Блоге! Комментарии к этой статье: Комментарий добавил(а): Админ Очень рада за Вас. Желаю дальнейших успехов! Комментарий добавил(а): Андрей у меня тип строк в бд ENUM, как мне сделать что бы в форме HTML это отобразилось? Комментарий добавил(а): Админ Для этого задайте для тега select тип "enum" Здесь "first", "second", "third" - разрешенные значения Комментарий добавил(а): Андрей спасибо. получилось))) не сочтите за наглость, но хотелось бы еще уточнить. У меня не работает скрипт с функцией request ((( у меня большенство полей enum я просто только постигаю озы магии web-программирования, и еще мало что знаю.... если не доставит много хлопот, подскажите пожалуйста Комментарий добавил(а): Админ Сейчас потестила как лучше сделать. У меня все заработало, когда сделала вот так: здесь table - Ваша таблица в базе; name - имя, которое стоит в name у тега select. Потом напишите получилось или нет Комментарий добавил(а): Андрей Спасибо, но ничего не выходит...что-то не то, ошибка всё равно остается "неопределенная переменная" Комментарий добавил(а): Админ Сложновато помочь не видя Ваш код. Давайте я покажу Вам как я делала. Вот мой html-файл: Вот php-файл: Плюс, когда Вы создаете поле в таблице базы данный, Вам нужно указать допустимые значения для этого поля: Попробуйте этот код, проверьте все внимательно в своем коде. У меня с этим кодом все хорошо добавляется в базу. Комментарий добавил(а): Андрей нет, ничего не получается, а бд заполняется пустыми значениями :( Комментарий добавил(а): Админ Андрей, если есть желание отправьте мне Ваш код (html-файл и php-файл) на мой email (anutka0306@mail.ru). Я попытаюсь разобраться. Комментарий добавил(а): Вячеслав Привет, сделал все как написано в уроке, после заполнения формы, высвечивается белый экран, но в БД запись не появляется :( Комментарий добавил(а): Вячеслав Ооо круто, все получилось, правда пришлось скачать ваши файлы и их на свой лад переписать, а от того, что я писал толку не было, наверное где то набокопорил! :) Комментарий добавил(а): Админ Да, так бывает. Иногда просто по невнимательности. Главное, что все получилось. Успехов! Комментарий добавил(а): Николай Не получаеться добавить новых пользователей через php форму. Скачивал Ваши источники. После того как ввожу данные пользователя необходимые для регистрации и нажимаю отправить браузер выдает "новая запись вставлена в базу! " ;?> Может быть причина в том что php код не срабатывает так как выдает знак вопроса и остальные символы в конце? Но почему он не срабатывает? и еще пользуюсь wampserver, он похож на денвер но может и в этом причина? Извините за возможно глупые вопросы, я начинающий))) Если поможете буду очень признателен) Комментарий добавил(а): Админ Сейчас еще раз просматривала этот код. Должно все работать. Попробуйте в файле обработчике "form.php" убрать все (только сначала сохраните где-то) и сделать такой тест. Пропишите в ним только: Комментарий добавил(а): Марк Спасибо Вам огромнейшее!!!По учебнику который купил ничего не было понятно,а сейчас как дважды два!!! Комментарий добавил(а): Марк Спасибо Вам огромнейшее!!!По учебнику который купил ничего не было понятно,а сейчас как дважды два!!! Комментарий добавил(а): Админ Спасибо Вам за отзыв, Марк. Это очень приятно слышать Комментарий добавил(а): Mishgan а если форма с галочками действия те же самые??? http://www.mik-avia.ru/ тип как здесь реализован поиск туров Read more: http://website-create.ru/web-zametki.php?cat=sozdanie-saitov&id=28#ixzz2yK4wOdvm Комментарий добавил(а): Админ С чекбоксами будет немного по-другому. Каждый тег "<input type="checkbox" name="имя">" будет иметь свое значение для имени. В коде php нужно проверить существование каждого значения (то есть пустое оно или отмеченное) при помощи условного оператора if и isset, а далее сделать соответствующие действия. Постараюсь в скором времени написать об этом пост, чтобы было все более понятно. Комментарий добавил(а): Олег что-то ни черта не получилось(( Комментарий добавил(а): Дмитрий Сделал все 1 в 1. Также использовал ваши исходники, но результат почему то всегда такой на форме form.php Новая запись вставлена в базу! "; ?> но запись не добавляется в БД. Также ввел <?php echo "Привет"; ?> В браузере отображает <?php echo "Привет"; ?> Никак не пойму в чем может быть причина( Комментарий добавил(а): Дмитрий Сделал все 1 в 1. Также использовал ваши исходники, но результат почему то всегда такой на форме form.php Новая запись вставлена в базу! "; ?> но запись не добавляется в БД. Также ввел <?php echo "Привет"; ?> В браузере отображает <?php echo "Привет"; ?> Никак не пойму в чем может быть причина( РЕШИЛ ЭТУ ПРОБЛЕМУ !!!!!. Вообщем мой косяк был. Использую денвер. Делать надо следующие: 1. в Браузере вписывать адрес "localhost/db1" 2. в появившемся списке выбрать файл "info_form.html" 3. работать с формами как показано в уроке Моей ошибкой было то что файл "info_form.html" я запускал дважды кликнув на него или через правую кнопку и выбирал браузер, в итоге адрес получался такой: " file:///Z:/home/localhost/www/db1/info_form.html "- это неправильный запуск. Надо именно прописывать в начале " localhost/ " далее "ваша папка / " "info_form.html " Комментарий добавил(а): Дмитрий Автору уроков также порекомендую для таких же "Пинокио" как я в уроке добавить правильный способ запуска файла и сделать акцент. Вроде просто написать "запускаем файл" , но как я доказал мы пошли разными путями ) Комментарий добавил(а): Админ Дима, рада, что Вы разобрались. Я про запуск файлов писала в одном из предыдущих уроков по работе с базой. Теперь буду иметь в виду, что об этом моменте нужно напоминать в каждом таком уроке. Спасибо Вам! Комментарий добавил(а): Сергей Скачал файлы все переделал под свой лад пишет ,что Новая запись вставлена в базу!,но в базе нет добавленной инфы Комментарий добавил(а): Английские числительные Спасибо Вам огромнейшее!!! http://angliiskii.net/post/74289492596 Комментарий добавил(а): Андрей сделал все по примеру, но запись в бд так и не появилась(( появляется "Новая запись вставлена в базу!" так понимаю что таблица сама создастся, может проблема в сервере. версиях mysql и php Комментарий добавил(а): Андрей все получилось, типы данных указать нужно было) Комментарий добавил(а): Андрей Теперь друга проблема. Русские символы вопросами отображаются Комментарий добавил(а): Александр А должно ли возвращаться на исходную страницу? Если нет, то как это можно сделать. Комментарий добавил(а): Админ Проблему с русскими символами попробуйте решить так. Сразу после кода соединения с базой, пропишите следующее: Комментарий добавил(а): Админ Чтобы возвращаться на исходную страницу, Вам нужно сделать перенаправление на нее из файла-обработчика формы. Делать его нужно уже после того, как Вы отправите все данные куда нужно. В php сделать такой возврат можно, например вот так: Комментарий добавил(а): Александр Спасибо огромнейшее. Добавить Комментарий: |
Почему стоит подписаться на обновления блога Будьте в курсе новых публикаций на Блоге! |
|
Copyright © WebSite-Create.ru, 2013-2014 | Все права защищены |
Комментарий добавил(а): Елена
Дата: 2013-12-21
Спасибо, всё получилось.