Добавление статьи в базу данных
Среда, 3 августа 2011 г.Рубрика: PHP программирование -> MySQL
Метки: articles | db | insert | into | база | данные | статья
Просмотров: 1555
Подписаться на комментарии по RSS
Этот урок мы выкладываем по просьбе Alenchik
В этом уроке мы с Вами поговорим о том, как добавлять статьи в базу.
Мы создадим форму для добавления статьи, базу для хранения статей, и конечно код для обработки и добавления статьи в базу.
В базе будут хранится обычная информация о статье - заголовок, краткое описание, текст статьи, дата добавления + время, автор статьи.
Представим что у нас есть база данных articles.
И в ней будет таблица articles.
Sql-запрос на создание таблицы в базу будет таким
CREATE TABLE `articles`.`articles` ( `id` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , `title` VARCHAR( 255 ) NOT NULL , `description` TEXT NOT NULL , `article` TEXT NOT NULL , `day` VARCHAR( 255 ) NOT NULL , `author` VARCHAR( 255 ) NOT NULL ) ENGINE = MYISAM ;
Теперь поговорим непосредственно о обработке передаваемых данных через форму.
Для безопасной работы с текстом из формы - мы будем обрабатывать его тремя функциями - а именно - trim - обрезает пробелы по бокам текса ( то есть вначале и в конце ), htmlspecialchars - все теги html делает текстом - а не исполняемым кодом, и stripslashes - экранирует слеши.
Теперь поговорим о том, как добавлять статьи в базу при помощи MySQL-запросов в php.
Все запросы в php пишутся в функцию - mysql_query.
Для добавления воспользуемся словом INSERT INTO, то есть ВСТАВИТЬ В название таблицы.
Запрос будет таким - INSERT INTO articles (title, description, article, day, author) VALUES ('$title', '$description', '$article', '$day', '$author')
Если по русски, то
ВСТАВИТЬ В articles (названия полей) ЗНАЧЕНИЯ (названия переменных или просто значения).
Теперь разберём код пошагово:
1) Если отправили данные из формы, то ...
2) Делаем безопасными переданные данные, и если каких-то нет, выводим сообщение о ошибке
3) Подключаемся к базе данных
4) Добавляем в базу статью
5) Если статья добавилась успешно, то выводим сообщение
6) Если данные не были отправлены, то выводим форму
Вот код
<?php /* * Если мы нажали на кнопку в форме, то обрабатываем переданные данные * Иначе выводим форму для добавления статьи */ if ( isset ( $_POST["send"] ) ) { // Если передали загаловок статьи, то делаем его безопасным if ( isset ( $_POST["title"] ) & ( $_POST["title"] !== '' ) ) { $title = trim ( htmlspecialchars ( stripslashes ( $_POST["title"] ) ) ); } else { die ( "Вы не ввели все данные" ); } // Если передали описание статьи, то делаем его безопасным if ( isset ( $_POST["description"] ) & ( $_POST["description"] !== '' ) ) { $description = trim ( htmlspecialchars ( stripslashes ( $_POST["description"] ) ) ); } else { die ( "Вы не ввели все данные" ); } // Если передали текст статьи, то делаем его безопасным if ( isset ( $_POST["article"] ) & ( $_POST["article"] !== '' ) ) { $article = trim ( htmlspecialchars ( stripslashes ( $_POST["article"] ) ) ); } else { die ( "Вы не ввели все данные" ); } // Если передали автора статьи, то делаем его безопасным if ( isset ( $_POST["author"] ) & ( $_POST["author"] !== '' ) ) { $author = trim ( htmlspecialchars ( stripslashes ( $_POST["author"] ) ) ); } else { die ( "Вы не ввели все данные" ); } // Заносим дату с временем в переменную $day = date ( "d-m-Y H:i" ); // Подключаемся к базе $db = mysql_connect ( "localhost", "root", "" ); mysql_select_db ( "articles", $db ); // Добавляем статью в базу $add = mysql_query ( "INSERT INTO articles (title, description, article, day, author) VALUES ('$title', '$description', '$article', '$day', '$author')", $db ); // Если статья добавлена успешно, то выводим соответствующее сообщение if ( $add == 'true' ) { echo "Статья успешно добавлена"; } else { echo "Статью добавить не удалось"; } } else { echo "<tt><form method = 'post' action = '' /> Название статьи <br /> <input type = 'text' name = 'title' /> <br /><br /> Краткое описание статьи<br /> <textarea rows = '3' cols = '60' name = 'description'></textarea><br /><br /> Статья<br /> <textarea rows = '16' cols = '60' name = 'article'></textarea><br /><br /> Автор статьи<br /> <input type = 'text' name = 'author' /> <br /><br /> <input type = 'submit' name = 'send' value = 'добавить' /> </form></tt>"; }
Таким же образом можно добавлять не только статьи, но и любую другую информацию, просто изменяя кол-во полей в таблице и их названия.


Спасибо большое!!!:-)
Мне тоже интересна эта информация. Спасибо, Alenchik, за заказ. :-))