Add News

H Создание модуля новостей с помощью PHP и MySQL в черновиках Из песочницы

В этом уроке мы будем рассматривать простой способ реализовать новости на вашем сайте, используя только 3 различных сценария PHP.

Давайте начнем с продумывания того, что именно мы должны иметь в модуле новостей. Очевидно, нам понадобится скрипт для извлечения новостей и вывода их на главной странице. Нам также понадобится скрипт, для возможности добавления новостей, и, наконец, еще один, чтобы редактировать или удалять новости.

1.1 Создание MySQL таблиц

Начнем мы с создания необходимых таблиц в БД для новостей. Каждая новость будет включать в себя заголовок, описание, имя автора, e-mail автора, дату и время, а так же уникальный идентификационный номер, чтобы идентифицировать каждую новость. Теперь мы готовы создать таблицы, используя следующий код:

CREATE TABLE news ( id smallint(5) unsigned NOT NULL auto_increment, headline text NOT NULL, story text NOT NULL, name varchar(255), email varchar(255), timestamp datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, PRIMARY KEY (id) ); 

Таблицы созданы, теперь мы можем перейти к реальному кодингу.

2.1 Добавление новости в базу данных: Создание формы

Теперь вы можете запустить редактор кода и создать новую страницу PHP. Страница должна быть пустой, так что давайте заполним ее. Мы знаем, что нужна будет нужна форма для сбора данных, и поле для заполнения каждого столбца. Вот то, что я придумал:

">  Name Email Headline News Story  

Теперь сохраните это как add.php и загрузите его в вашем браузере. Вы должны увидеть все поля, но если вы нажмете добавить, ничего не происходит. Это потому, что не какой код не выполняет сценарий, чтобы использовать информацию, так что это просто перезагрузка формы. Скрытое поле в форме очень важно, и мы будем рассматривать это в следующем шаге. Вы, возможно, заметили, что переменная $PHP_SELF, все это делает, что-бы, когда вы нажмете добавить, будет перезагрузка страницы с текущей информацией. Теперь давайте начнем кодирование.

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

Теперь мы можем на самом деле начать кодить. Во-первых, мы должны создать сценарий который что-то делает, когда форма была отправлена. Помните, скрытое поле? Это где он вступает в игру. Мы можем использовать функцию isset(), чтобы проверить, было ли для скрытой переменной поле установлено или нет, и если да, то запустить скрипт. Таким образом, мы напишем следующее:

Теперь для фактического сценария, мы создадим подключение к базе данных:

 $link = @mysql_connect(localhost, username, password); if(!$link) < echo('Error connecting to the database: ' . $mysql_error()); exit(); >$db = @mysql_selectdb('mydatabase'); if(!$db)

Этот скрипт подключается к базе данных и выбирает ее, но если не удается подключиться, он будет выводить сообщение об ошибке. Символ @ просто подавляет сообщения об ошибке по умолчанию, поэтому мы можем объявить наш собственный. Теперь, когда мы соединены, можно добавить данные в базу данных в качестве новой строки. Следующий код будет делать это безболезненно:

$query = "INSERT INTO news(name, email, headline, story, timestamp)VALUES('$name', '$email', '$headline', '$story', NOW())"; $result = @mysql_query($query); if(!$result)< echo('Error adding news: ' . $mysql_error()); exit(); >else< mysql_close($link); echo('Success!
Click here to add more news.
Click here to edit news.
Click here to return to the main page.'); >

Теперь это создаст новую строку в новостях. Теперь мы можем посмотреть на окончательный скрипт.

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

Вот так, должен выглядеть ваш add.php:

     $db = @mysql_selectdb('mydatabase'); if(!$db) < echo('Error selecting database: ' . $mysql_error()); exit(); >$query = "INSERT INTO news(name, email, headline, story, timestamp)VALUES('$name', '$email', '$headline', '$story', NOW())"; $result = @mysql_query($query); if(!$result)< echo('Error adding news: ' . $mysql_error()); exit(); >else< mysql_close($link); echo('Success!
Click here to add more news.
Click here to edit news.
Click here to return to the main page.'); > >else < ?>"> Name Email Headline News Story ?>

3.1 Редактирование/Удаление новостей: Вывод элементов новостей на странице

Мы должны начать с получения всех новостей из базы данных, а затем создать ссылку редактировать и удалить рядом с каждым пунктом для того, чтобы выполнить требуемое действие. Во-первых, мы должны объявить переменную, чтобы сообщить нам о выполняемым действие. Мы должны сделать основной контур вроде такого:

elseif($a == 'edit')< // Perform edit procedures >elseif($a == 'delete') < // Delete the news item >?> 

Давайте начнем с вывода всех новостей. Мы должны сделать подключение к базе данных (например, как в add.php) и выбрать все строки. Код будет выглядеть примерно так:

$link = @mysql_connect(localhost, username, password); if(!$link) < echo('Error connecting to the database: ' . $mysql_error()); exit(); >$db = @mysql_selectdb('mydatabase'); if(!$db) < echo('Error selecting database: ' . $mysql_error()); exit(); >$query = "SELECT id, headline, timestamp FROM news ORDER BY timestamp DESC"; $result = @mysql_query($query); if(!$result)

Это выбирает все новости из базы данных, теперь мы должны вывести это на странице.

Давайте начнем с вывода всех новостей. Мы должны сделать подключение к базе данных (например, как в add.php) и выбрать все строки. Код будет выглядеть примерно так:

if (mysql_num_rows($result) > 0) < while($row = mysql_fetch_object($result)) < ?>headling; ?> timestamp); ?> 
edit | delete else < ?>No news in the database mysql_close($link); ?>

Этот сценарий принимает результаты запроса, и выводит их на странице, while() создает цикл, пока есть не больше строк для выборки. mysql_fetch_object() принимает данные и обрабатывает их в форме для печати. Оператор -> в основном берет этот столбец из строки, которой в настоящее время. Так что теперь у нас есть все новости, поданных на странице с редактированием и удалением… Начнем редактировать эти новости.

3.2 Редактирование/Удаление новостей: Редактирование новостей

Эта часть сценария будет появляться, когда $a равна ‘Edit’. За $ID были отправлены со ссылкой, так что все мы должны сделать сейчас, это принесет другие данные, которые связанные с этим ID. Вот как это выглядит:

if(!isset($update)) < $link = @mysql_connect(localhost, username, password); if(!$link)< echo('Error connecting to the database: ' . $mysql_error()); exit(); >$db = @mysql_selectdb('mydatabase'); if(!$db) < echo('Error selecting database: ' . $mysql_error()); exit(); >$query = "SELECT name, email, headline, story FROM news WHERE "; $result = @mysql_query($query); if(!$result) < echo('Error selecting news item: ' . $mysql_error()); exit(); >mysql_fetch_object($result); ?> &update=1">  Name name) ?>">  Email email) ?>">  Headline headline) ?>">  News Story   

Это выглядит очень похоже со страницей add.php, на этот раз, хотя, мы ставим значения, сохраненные в базе данных в поля для редактирования. Вы также можете заметить, что мы добавили переменную обновления к классу редактирования, это так, мы можем сказать, скрипт, который мы фактически обновляем вместо повторной печати формы. Обновление будет выглядеть следующим образом:

else< $query section_7">3.3 Редактирование/Удаление новостей: Удаление новостей 
Удаление новостей даже легче, чем редактирование, или даже создание новости. Функция удаления является одним MySQL запросом, который удаляет новость, где ID равно ID новостей. Вот как это выглядит:

$link = @mysql_connect(localhost, username, password); if(!$link) < echo('Error connecting to the database: ' . $mysql_error()); exit(); >$db = @mysql_selectdb('mydatabase'); if(!$db) < echo('Error selecting database: ' . $mysql_error()); exit(); >$query = "DELETE FROM news WHERE "; $result = @mysql_query($query); if(!$result) < echo('Error deleteing news item: ' . $mysql_error()); exit(); >mysql_close($link); echo('News item deleted.'); ?> 

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

3.3 Редактирование/Удаление новостей: Финал

     $db = @mysql_selectdb('mydatabase'); if(!$db) < echo('Error selecting database: ' . $mysql_error()); exit(); >$query = "SELECT id, headline, timestamp FROM news ORDER BY timestamp DESC"; $result = @mysql_query($query); if(!$result) < echo('Error selecting news: ' . $mysql_error()); exit(); >if (mysql_num_rows($result) > 0) < while($row = mysql_fetch_object($result)) < ?>headling; ?> timestamp); ?> 
edit | delete else < ?>No news in the database mysql_close($link); >elseif($a == 'edit') < if(!isset($update))< $link = @mysql_connect(localhost, username, password); if(!$link)< echo('Error connecting to the database: ' . $mysql_error()); exit(); >$db = @mysql_selectdb('mydatabase'); if(!$db) < echo('Error selecting database: ' . $mysql_error()); exit(); >$query = "SELECT name, email, headline, story FROM news WHERE "; $result = @mysql_query($query); if(!$result) < echo('Error selecting news item: ' . $mysql_error()); exit(); >mysql_fetch_object($result); ?> &update=1"> Name name) ?>"> Email email) ?>"> Headline headline) ?>"> News Story else< $query = "UPDATE news SET name = '$name, email = '$email', headline = '$headline', story = '$story', timestamp = NOW() WHERE ; $result = @mysql_query($query); if(!$result)< echo('Error updating news item: ' . $mysql_error()); exit(); >else < mysql_close($link); echo('Update successful!'); >>elseif($a == 'delete') < $link = @mysql_connect(localhost, username, password); if(!$link)< echo('Error connecting to the database: ' . $mysql_error()); exit(); >$db = @mysql_selectdb('mydatabase'); if(!$db) < echo('Error selecting database: ' . $mysql_error()); exit(); >$query = "DELETE FROM news WHERE "; $result = @mysql_query($query); if(!$result) < echo('Error deleteing news item: ' . $mysql_error()); exit(); >mysql_close($link); echo('News item deleted.'); > ?>

4.1 Просмотр новости: просмотр новости на Главной странице

Верьте или нет, но вы уже написали этот модуль, когда вы написали редактирование/edit.php. Код в основном такой же без «редактировать | удалить „ссылки. Здесь в полном виде:

     $db = @mysql_selectdb('mydatabase'); if(!$db) < echo('Error selecting database: ' . mysql_error()); exit(); >$query = "SELECT id, headline, timestamp FROM news ORDER BY timestamp DESC"; $result = @mysql_query($query); if(!$result) < echo('Error selecting news: ' . mysql_error()); exit(); >if (mysql_num_rows($result) > 0) < while($row = mysql_fetch_object($result)) < ?>headling; ?> timestamp); ?> >else < ?>No news in the database mysql_close($link); ?>  

5.1 Итоги

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

Источник

Скрипт вывода новостей на PHP

Скрипт вывода новостей на PHP

На многих сайтах-визитках есть блок с "Новостями". Если сайт работает на движке, то это отдельная огромная история. Но если это фактически HTML-сайт с набором скриптов, то вывод новостей на PHP происходит через скрипт. Именно его мы и создадим в этой статье.

Поскольку движка и Admin-панели нет, то будем хранить все наши новости в текстовом файле (например, пусть файл называется news.txt):

График работы;Мы работаем с 9:00 до 23:00;04.02.2014
Скидки!;У нас действует система скидок;03.02.2014
Мы открылись!;Ждём Вас!;01.02.2014

Формат новостей в текстовом файле может быть любым, главное, его всегда соблюдать. Дальше пишем скрипт вывода новостей на PHP:

$news = file_get_contents("news.txt");
$news = explode("\n", $news);
for ($i = 0; $i < count($news); $i++) $new = explode(";", $news[$i]);
?>

?>

Вот таким образом делается скрипт новостей на PHP в случае, если у Вас нет движка для сайта. А если Вы хотите создать движок, но не знаете как, то пройдя курс PHP и MySQL с Нуля до Гуру, Вы научитесь это делать.

Создано 07.03.2014 08:08:52

  • Михаил Русаков
  • Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

    Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
    Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

    Если Вы не хотите пропустить новые материалы на сайте,
    то Вы можете подписаться на обновления: Подписаться на обновления

    Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

    Порекомендуйте эту статью друзьям:

    Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

    1. Кнопка:
      Она выглядит вот так:
    2. Текстовая ссылка:
      Она выглядит вот так: Как создать свой сайт
    3. BB-код ссылки для форумов (например, можете поставить её в подписи):

    Комментарии ( 1 ):

    Здравствуйте! Не могли бы вы привести конкретный примеры cо скриншотами (или кодами) и структуру файлов и папок сайта.

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2023 Русаков Михаил Юрьевич. Все права защищены.

    Источник

    Читайте также:  Simple commands in python
    Оцените статью