Как вы уже догадались это очередная публикация из цикла работа 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 их взаимодействие мы просмотрели в нескольких публикация. Статья получилась длинной но я надеюсь познавательной. Кому понравился материал проголосуйте за него, у кого есть вопросы задавайте отвечу всем. До скорых встречь!