Добавление данных в Базу Данных через форму

Форум для тех кто начинает осваивать язык php.
Аватара пользователя
Slash
Администратор
Сообщения: 2207
Зарегистрирован: Сб авг 11, 2012 7:39 am
Поблагодарили: 81 раз

Добавление данных в Базу Данных через форму

#1

Сообщение Slash » Вс фев 09, 2014 1:45 pm

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

Код: Выделить всё

<form name="forma" action="index.php" method="post">
 Ваше имя: <input type="text" name="name"><br />
 Ваш E-mail: <input type="text" name="email"><br />
<input name="submit" type="submit" value="Отправить"> 
</form>
Эта форма может применятся для регистрации нового пользователя, для рассылки новостей, для сбора статистики, да для чего угодно... В общем в эту форму пользователь забивает свои данные: имя и почту, нажимает на кнопку и дальше данные переходят в php скрипт:

Код: Выделить всё

$name = $_POST['name'];
$email = $_POST['email']; 

$result = mysqli_query("INSERT INTO user (name, email) 
VALUES ('$name', '$email')");
if ($result) {
    echo "Данные успешно сохранены!";
}
else {
    echo "Произошла ошибка, пожалуйста повторите попытку.";
} 
Что же в этом скрипте происходит? Сейчас разберемся!
Введенные в форму данные, методом POST переходят в php скрипт (который написан выше), и при помощи глобального массива $_POST данные формируются в переменные $name и $email:

Код: Выделить всё

$name = $_POST['name'];
$email = $_POST['email']; 
После того, как переменные готовы для занесения в базу, составляем запрос. Но прежде Ваши скрипты должны быть уже подключены к БД, как подключиться к БД, я писал в этой теме: Функции соединения с сервером MySQL. Сам запрос выглядит так:

Код: Выделить всё

$result = mysqli_query("INSERT INTO user (name, email) 
VALUES ('$name', '$email')");
В этом коде мы обозначили, что в ячейки name и email, которые находятся в таблице user, будут добавлены следующие переменные: $name и $email.
Далее, если все прошло успешно, мы получим сообщение из условия:
Данные успешно сохранены!

Если же возникли какие то проблемы и данные не были занесены, мы получим сообщение об ошибке:
Произошла ошибка, пожалуйста повторите попытку.
Вот и все!

*** *** *** *** ***

При желании можно добавить больше полей для ввода информации, например нам необходимо добавить поле для ввода города пользователя. У нас уже есть готовый скрипт (написан выше), теперь просто добавим поле Ваш город, переменную назовем: $city. И так в форму ввода данных, после:

Код: Выделить всё

 Ваш E-mail: <input type="text" name="email"><br />
добавляем:

Код: Выделить всё

 Ваш город: <input type="text" name="city"><br />
В php скрипте, после:

Код: Выделить всё

$email = $_POST['email'];
 
добавляем:

Код: Выделить всё

$city = $_POST['city'];
Ну и конечно в запросе добавляем тоже, вот так:

Код: Выделить всё

$result = mysqli_query("INSERT INTO user (name, email, city) 
VALUES ('$name', '$email', '$city')");
Вот, что должно получится в итоге:
Форма ввода:

Код: Выделить всё

<form name="forma" action="index.php" method="post">
 Ваше имя: <input type="text" name="name"><br />
 Ваш E-mail: <input type="text" name="email"><br />
 Ваш город: <input type="text" name="city"><br />
<input name="submit" type="submit" value="Отправить"> 
</form> 
Скрипт:

Код: Выделить всё

$name = $_POST['name'];
$email = $_POST['email'];
$city = $_POST['city'];

$result = mysqli_query("INSERT INTO user (name, email, city) 
VALUES ('$name', '$email', '$city')");
if ($result == true) {
    echo "Данные успешно сохранены!";
}
else {
    echo "Произошла ошибка, пожалуйста повторите попытку.";
} 
Как видите ни чего сложного! При необходимости можно добавить ещё поле, и ещё, и ещё...

Реклама

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей