Отправляет email-рассылки с помощью сервиса Sendsay

PHP Wars: против целого мира

  Все выпуски  

PHP Wars: против целого мира


Информационный Канал Subscribe.Ru

PHP Wars: против целого мира - выпуск 12

Iprit, глав(в)ред рассылки.

Автор: Gorinich
Источник: CN GROUP


Пишем маленькую ленту новостей

И уже в который раз я вас приветствую. В прошлых статьях мы познакомились как работают парсеры и попытались облегчить жизнь если используем модуль для работы с базой данных MySQL. Эта статья призвана просто показать, как связать между собой все, что было написано ранее и как использовать модуль БД.

Собранный и готовый к употреблению проект вы можете найти в прилагаемом архиве. Вам нужно будет только исправить файл config.php, в нем хранятся атрибуты доступа к БД.

Итак, мы будем писать ленту новостей. Это самое простое, что приходит мне в голову. Я не буду вдаваться в подробности языка SQL, а просто приведу готовые запросы. Ведь мы изучаем PHP, а не MySQL :) Прежде всего нам понадобится база данных. Если у вас на машине еще не установлен сервер MySQL, устанавливайте скорее. Если уже стоит, двигаемся дальше. Для простоты работы с БД я использую программу mysqlcc. Это бесплатный продукт от создателей MySQL и призван облегчить работу с БД. По сути это просто графическая оболочка.

» Поехали.

В первую очередь создайте БД. У меня она называется cngroup :). Теперь в готовой базе создадим таблицу в которой и будем хранить наши новости. Для создания таблицы выполните запрос:
CREATE TABLE `cng_news` (
`id` int(11) NOT NULL auto_increment,
`title` varchar(100) NOT NULL default '',
`text` text NOT NULL,
`date` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) TYPE=MyISAM;

Теперь у нас все готово и мы приступаем. Как я уже сказал, мы используем материал прошлых статей. Я не буду описывать что куда прикручивать. Посмотрите сами в прилагаемом архиве. Итак, начинаем.

Во-первых, нам новости надо как-то добавить. Ведь взяться им пока неоткуда :) Для этого нам надо приготовить форму добавления новости. Код формы представлен ниже:
<form method='post'>
<input type='hidden' name='formid' value='1'>
<input type='text' name='title'><br>
<textarea name='text' cols='40' rows='10'></textarea><br>
<input type='submit' value='Добавить'>
</form>

Скрытое поле formid нужно нам, чтобы потом мы смогли определить, что мы получили данные именно из этой формы. Ведь потом у нас может быть несколько форм на странице и нам надо будет их как-то различать. Я поступаю именно так. Вы делаете как вам удобно.

Выведем форму на страницу:
Pr("
<form method='post'>
<input type='hidden' name='formid' value='1'>
<input type='text' name='title'><br>
<textarea name='text' cols='40' rows='10'></textarea><br>
<input type='submit' value='Добавить'>
</form>

");

Теперь мы должны принятые данные внести в таблицу. Эту задачу выполняет следующий код, расположенный в том же скрипте:
if (@$_POST['formid'] == 1)
{
    // Если мы получили форму с идентификатором 1, то добавляем новость
    sql("INSERT INTO cng_news(title, text, date) VALUES('{$_POST['title']}', '{$_POST['text']}', now())");
}

Вот так все просто.

Теперь напишем скрипт самой новостной ленты. Здесь тоже все очень просто. Сначала выбираем нужные нам данные из БД:
$news = sqlfields('SELECT * FROM cng_news');
$cnt_news = sqlrows(); // Считаем количество строк в результате запроса.

Теперь у нас в переменной $news хранятся записи БД в удобном формате, а в переменной $cnt_news их количество (в штуках).

Теперь нам ничего не остается, как вывести их на страницу. Это сделаем одним простым циклом:
for ($i=0; $i < $cnt_news; $i++)
Pr("<b>".$news['title'][$i]."</b> <i>".$news['date'][$i]."</i><br>".$news['text'][$i]."<br><br>");

Все.

Эту статью можно считать дополнением к прошлой. Здесь нет ничего интересного. Это просто пример использования всего что мы рассматривали в тесном взаимодействии. Если у вас возникли вопросы по данной статье, перечитайте предыдущие. Если вопросы остались, я отвечу на них на форуме http://forum.cngroup.ru/.

До встречи в следующей статье.


Нам очень важно Ваше мнение о нашей рассылке, если у вас есть какие-либо пожелания или предложения, Вы хотите высказать свое мнение по поводу опубликованного материала, то пишите нам.
На сегодня это все. Очередной выпуск нашей рассылки ждите как обычно в следующее воскресенье. Продолжение неизбежно…
PHP Wars 2005, Все права на материалы принадлежат их авторам. Перепечатка или любое другое использование материалов рассылки разрешается только с письменного разрешения.

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.phpwars
Архив рассылки
Отписаться
Вспомнить пароль

В избранное