PHP

Как записать данные в базу mysql через форму

Как вы уже догадались это очередная публикация из цикла работа php и базы данных mysql. Хочу напомнить, что мы уже научились создавать базу данных несколькими методами и функциями php, затем научились удалять созданные базы и таблици. А теперь перейдем к более сложному разбору php функций необходимых для записи данных в таблици mysql сервера через форму ввода. И так начнем. Первое нам необходимо опять создать пример таблици если вы ее уже удалили, а создавать мы уже умеим. Или создадим сегодня пока вместе. Например таблица (user) в нашей тестовой базе данных денвера (baze).

Структура таблици будет такова:

id - идентификатор с уникальным значением

email - email пользователя

adres - адрес

first_name - имя пользователя

last_name - фамилия пользователя так как у нас таблица user то применим для нее данные пользователя. Структура есть теперь небходимо создать запрос к базе:

Код PHP
	include ('db.php');
	 //Пишем текст SQL запроса, который автоматически создаст нужную таблицу
	 $sql='
	 CREATE TABLE
	 user (
	 id INT (11) UNSIGNED NOT NULL AUTO_INCREMENT,
	 email CHAR (45) NOT NULL, // поле email CHAR длинна 45 символов
	 addres CHAR (100) NOT NULL, // поле для ввода адреса длинна 100 достаточно
	 first_name CHAR (30) NOT NULL, // Имя
	 last_name CHAR (30) NOT NULL, // Фамилия
	 PRIMARY KEY (id)
	 );';
	 //Конец SQL запроса
	 
	 if(!mysql_query($sql))
	 {cho '<center><p><b>Ошибка при создании таблицы!</b></p></center>';}
	 //Строку расположенную ниже после отладки - удалить
	 else {echo '<center><p><b>Таблица создана!</b></p></center>';}

После выполнения этого sql запроса у нас должна создаться таблица в базе данных (baza) которую мы создавали для тестирвания в предидущих публикациях Далее теперь нам необходимо сделать запрос который добавит данные в базу давайте рассмотрим пример как это должно выглядеть, а потом разберем.

Код PHP
	include ('db.php');
	 $email = "email@phpguru.com.ua";
	 $addres = "Город, Улица, Дом, квартира";
	 $first_name = "Имя";
	 $last_name = "Фамилия";
	 $sql = 'INSERT INTO user(email, addres, first_name, last_name)
	 VALUES("'.$email.'", "'.$addres.'", "'.$first_name.'", "'.$last_name.'")';
	// проверка
	 if(!mysql_query($sql))
	 {echo '<center><p><b>Ошибка при добавлении данных!</b></p></center>';}
	 else
	 {echo '<center><p><b>Данные успешно добавлены!</b></p></center>';}

После того как сработает функция INSERT INTO в таблице должна появится запись с данными которые мы ввели в соответствующие переменные. Опишим сам процес, что здесь происходит. Здесь мы каждму полю таблици присваиваем переменные желательно всегда делайте переменные одноименные названию ячеек таблици - так удобнее и понятнее никогда не потеряетесь в коде. Каждой переменно мы задали значение например email - адрес электронной почты, adres - указали адрес и так далее. Затем необходимо обязательно подключить файл в котором прописаны все данные для подключения к базе данных. В нашем случае - это файл connect.php. И собственно сама функция вставки в определенные ячейки данных из скрипта. После чего мы должны увидеть все введенное в нашей таблице. Надеюсь понятно объяснил. Двигаемся далее.

Теперь нам надо вывести эти данные на страницу для просмотра. Для реализации этого нам неоходимо создать такой запрос с выборкой:

Код PHP
	include ('db.php');
	 //Выбираем все записи
	 $sql="SELECT * FROM user";
	 //В переменной $res сохраняем результаты выборки
	 $res=mysql_query($sql);
	 echo 'Выбранные данные:';
	 //В цикле выводим по очереди все полученные строки
	 while ($memberinfo=mysql_fetch_array($res))
	 {
	 echo '<br> <br>
	 '.$memberinfo["last_name"].' <br>
	 '.$memberinfo["first_name"].' <br>
	 '.$memberinfo["addres"].' <br>
	 '.$memberinfo["email"].'
	 ';
	 }

В результате отработки данного скрипта вы должны увидить на странице данные с таблици. Если все получилось можете проексперементировать и добавить еще данные в таблицу и увидить выборку и вывод через цикл. Как я и говорил в начале публикации создадим сегодня и форму добаления данных на сервер в базу mysql. Двигаемся далее.

Создаем файл action.php

Код PHP
	include ('db.php');
	 $email = $_POST['email']; // передаем переменной email значение глобального массива POST
	 $addres = $_POST['addres']; // повтоять не буду тут происходит то, что в первом случае
	 $first_name = $_POST['first_name'];
	 $last_name = $_POST['last_name'];
	 $sql = 'INSERT INTO user(email, addres, first_name, last_name)
	 VALUES("'.$email.'", "'.$addres.'", "'.$first_name.'", "'.$last_name.'")';
	// проверка
	 if(!mysql_query($sql))
	 {echo '<center><p><b>Ошибка при добавлении данных!</b></p></center>';}
	 else
	 {echo '<center><p><b>Данные добавлены!</b></p></center>';}

Я надеюсь данных комментариев в коде достаточно для разбора данного кода. Не будим на этом заморачиваться и двигаемся дальше.

Немного о глобальных массивах GET и POST

Данные из формы передаються обработчику двумя методами post или get в зависимости от того какой вы укажите в форме. Но я рекомендую формы передавать массивом post.

Создаем саму форму добавления материала контанта или в нашем случае данные о пользователе. Как создать форму я публиковал в публикациях по созданию формы с бб кодами, а теперь создадим самую простую форму. Давайте реализуем.

Код формы добавления данных.

Код HTML
	<form method="post" action="action.php">
	// Здесь указываем метод передачи post и сам обработчик файл action.php
	  Введите имя:
	 <input size="30" name="first_name" type="text"><br>
	  Введите фамилию: <input size="30" name="last_name" type="text"><br>
	  Введите E-mail: <input size="45" name="email" type="text"><br>
	  Введите адрес: <input size="100" name="addres" type="text"><br>
	  <input value="Добавить запись" type="submit">
	  </form>

Давайте теперь эту форму добавим на страницу и назовем ее add.html. Чтобы все это заработало просто добавить все файлы созданные здесь в директорию www нашего сервера на денвере. Можно даже и localhost/www/файлы которые мы создали. На этом этапе основы работы php и базы данных mysql их взаимодействие мы просмотрели в нескольких публикация. Статья получилась длинной но я надеюсь познавательной. Кому понравился материал проголосуйте за него, у кого есть вопросы задавайте отвечу всем. До скорых встречь!
Добавлено: 27 Августа 2013 11:35:29 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...