Добавление статьи в базу данных

Среда, 3 августа 2011 г.
Рубрика: PHP программирование -> MySQL
Метки: | | | | | |
Просмотров: 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>";
}

Таким же образом можно добавлять не только статьи, но и любую другую информацию, просто изменяя кол-во полей в таблице и их названия.

Поделиться...
twitter.com facebook.com vkontakte.ru mail.ru google.com bobrdobr.ru
Комментариев: 2
  1. Спасибо большое!!!:-)

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

Оставьте свой комментарий!

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Если вы уже зарегистрированы как комментатор, укажите пароль и свой действующий email.

(обязательно)