Как связать форму с базой данных sql
Перейти к содержимому

Как связать форму с базой данных sql

  • автор:

Запись в базу данных mysql на php через форму

Запись в базу данных mysql на php через форму

Рассмотрим на примере, как создать форму, с помощью которой мы будем делать запросы в базу данных mysql на языке php, используя PDO.

1. Создадим разметку html-формы

  Запись в БД через форму на php   

Форма отправляется методом POST и обрабатывается на текущей странице.

2. Создадим таблицу, в которую будем записывать данные

Можно выполнить через SQL в PhpMyAdmin или ручками.

CREATE TABLE `mytable` ( `id` int(20) NOT NULL PRIMARY KEY AUTO_INCREMENT, `name` varchar(255) CHARACTER SET utf32 NOT NULL, `text` text NOT NULL ) 

3. Подключимся к базе данных и напишем запрос для записи.

Подключимся к базе данных.

// Переменные с формы $name = $_POST['name']; $text = $_POST['text']; // Параметры для подключения $db_host = "localhost"; $db_user = "user"; // Логин БД $db_password = "123"; // Пароль БД $db_base = 'mybase'; // Имя БД $db_table = "mytable"; // Имя Таблицы БД try < // Подключение к базе данных $db = new PDO("mysql:host=$db_host;dbname=$db_base", $db_user, $db_password); // Устанавливаем корректную кодировку $db->exec("set names utf8"); > catch (PDOException $e) < // Если есть ошибка соединения, выводим её print "Ошибка!: " . $e->getMessage() . "
"; >

Кодировку установили, чтобы избежать лишних проблем (не обязательно).

Не забудьте заранее создать таблицу в базе данных с трёмя значениями (id, name, text), подробнее об этом читать здесь.

Далее напишем наш запрос для записи в базу данных и запишем его в переменную.

// Собираем данные для запроса $data = array( 'name' => $name, 'text' => $text ); // Подготавливаем SQL-запрос $query = $db->prepare("INSERT INTO $db_table (name, text) values (:name, :text)"); // Выполняем запрос с данными $query->execute($data); 

Здесь мы сначала все наши данные для записи записываем в переменную $data, затем подготавливаем запрос с плейсохледарами (переменные) и выполняем запрос передавая ему данные для заполнения из $data

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

if ($result)

4. Подключение формы к запросу

Форму создали, к базе подключились и написали запрос, теперь нужно связать всё это.

Форма отправляется методом POST, поэтому мы можем сделать проверку на него, а именно на любое поле формы.

У нас передаются поля с именами «name» и «text», на них мы и сделаем проверку.

Вставим весь наш скрипт в эту проверку:

if (isset($_POST['name']) && isset($_POST['text']))< // Переменные с формы $name = $_POST['name']; $text = $_POST['text']; // Параметры для подключения $db_host = "localhost"; $db_user = "user"; // Логин БД $db_password = "123"; // Пароль БД $db_base = 'mybase'; // Имя БД $db_table = "mytable"; // Имя Таблицы БД try < // Подключение к базе данных $db = new PDO("mysql:host=$db_host;dbname=$db_base", $db_user, $db_password); // Устанавливаем корректную кодировку $db->exec("set names utf8"); // Собираем данные для запроса $data = array( 'name' => $name, 'text' => $text ); // Подготавливаем SQL-запрос $query = $db->prepare("INSERT INTO $db_table (name, text) values (:name, :text)"); // Выполняем запрос с данными $query->execute($data); // Запишим в переменую, что запрос отрабтал $result = true; > catch (PDOException $e) < // Если есть ошибка соединения или выполнения запроса, выводим её print "Ошибка!: " . $e->getMessage() . "
"; > if ($result) < echo "Успех. Информация занесена в базу данных"; >>

То есть, если существует значения «name» и «text» переданные методом POST, то выполняется подключение к БД и запись в таблицу.

Как подключить форму html к бд mysql??

Все просто. 1) Сначала нужно получить данные из html формы. Вот как это сделать: https://fructcode.com/ru/courses/php-and-mysql/video-form-get-and-post/ 2) Потом эти данные нужно вставить в базу данных через insert: https://fructcode.com/ru/courses/php-and-mysql/video-sql-insert/ Вот здесь в ответе готовый пример получения данных из HTML формы и вставки его в базу данных + вывод данных из базы, на пример домашнего задания про плеер: https://fructcode.com/ru/qa/phpmysql-nzifh/

Sign up or Log in to write an answer

  • Интерактивные уроки и курсы программирования и создания сайтов (дистанционное обучение) помогут вам в игровой форме изучить основы языков программирования веб-разработки и веб-программирования с нуля. Обучение онлайн 24/7.

Общие ссылки

  • Отзывы
  • Политика конфидециальности
  • Условия использования
  • Блог
  • Цена и оплата
  • Курсы и скринкасты
  • Сертификаты
  • Партнерская программа
  • Комьюнити

Наши курсы и скринкасты

  • HTML/CSS Advanced
  • Bootstrap 4
  • Vue JS
  • Linux, GIT and web-hosting
  • HTML and CSS
  • Modern Javascript
  • Javascript/jQuery
  • Codeigniter
  • Все курсы и скринкасты

Запись в базу данных через форму

Здравствуйте прохожу курс PHP. Там была домашняя работа, в которой надо сделать форму, информация из формы должна идти в базу данных.

У меня не получается. Пробовал искать в интернете. Там есть информация и, даже, готовый код, но он не работает. Помогите пожалуйста.

Костя Соколов
5 years ago

А что конкретно не получается? Код покажи, что не работает, какие ошибки.

Pavel Lazarev
5 years ago

if (isset($_POST[‘name’]) && isset($_POST[‘autor’]))

// Переменные с формы
$name = $_POST[‘name’];
$autor = $_POST[‘autor’];

// Параметры для подключения
$db_host = «localhost»;
$db_user = «root»; // Логин БД
$db_password = «»; // Пароль БД
$db_base = ‘player’; // Имя БД
$db_table = «player»; // Имя Таблицы БД

// Подключение к базе данных
$mysqli = new mysqli($db_host,$db_user,$db_password,$db_base);

// Если есть ошибка соединения, выводим её и убиваем подключение
if ($mysqli->connect_error) die(‘Ошибка : (‘. $mysqli->connect_errno .’) ‘. $mysqli->connect_error);
>

$result = $mysqli->query(«INSERT INTO player VALUES (null, ‘$name’,’$autor)»);

Пишет «Информация не занесена в базу данных».

Но почему, я не разобрался.

Костя Соколов
5 years ago

тут $db_base = ‘player’; // Имя БД

почему-то одинарные кавыки не как везде двойные

в самом запросе смотри тоже кавычки

query(«INSERT INTO player VALUES (null, ‘$name’,’$autor)»);

после $autor — пропущена кавычка.

если не заработает для диагностики ошибок используй

Pavel Lazarev
5 years ago

Болое спасибо, все заработало.

Форма регистрации на PHP с использованием базы данных MySQL

Наша задача состоит в том, чтобы создать форму регистрации и обработчик на языке PHP, в которой, если пользователь вводит данные, То данные HTML-формы сохраняются в нашу базу данных MySQL.

Подключаемся к БД

  • Для начала создадим нашу базу данных MySQL и таблицу в соответствии с нашими требованиями.
  • Мы подключаем нашу базу данных MySQL с помощью функции PHP mysqli_connect(), которая принимает четыре аргумента, то есть наши «имя сервера», «имя пользователя», «пароль» и «базу данных».

Примечание: здесь не используется код CSS, поскольку мы используем Bootstrap в коде PHP ниже. Вы можете применить CSS стили в своих приложениях, если захотите.

Для соединения с БД создадим PHP файл «dbconnect.php», а имя для нашей базы базы данных выберем — «testdatabase».

 else < die("Error". mysqli_connect_error()); >?> 

Таблица «users » создается с помощью инструмента MySQL phpMyAdmin, как показано ниже.

Создаем форму регистрации

теперь, когда мы успешно подключились к нашей базе данных, пора создать форму регистрации для пользователей. Следующий код описывает нашу форму регистрации. Используемое имя таблицы базы данных MySql — «users».

 > else < $showError = "Passwords do not match"; >> if($num>0) < $exists="Username not available"; >>//end if ?>          Success! Your account is now created and you can login.  
'; > if($showError) < echo '
Error! '. $showError.'
'; > if($exists) < echo '
Error! '. $exists.'
'; > ?>

Username
Password
Confirm Password Make sure to type the same password

Смотрим результат

  • Форма регистрации:
  • После успешного входа пользователя:
  • После неверного входа пользователя:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *