News show php id

Простой пример работы с базой данный в php. Часть 3. Новости

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

Прежде чем перейти к написанию кода, нужно спроектировать базу данных. В базе данных мы будем хранить новости и категории новостей. Нам потребуется две таблицы, первая – category, для хранения категорий новостей, она будет состоять из двух полей – id и category_name. Тут все понятно, id – первичный ключ, а name будет служить для хранения названия категорий. Вторая таблица будет создана для новостей — news. Таблица news будет состоять из полей:
Id — первичный ключ,
id_category – id категории из таблицы category,
title — заголовок,
small_text – краткое описание,
text – полный текст новости,
author – автор новости.
Поскольку таблица news использует в своем поле id_category id из таблицы category, нам необходимо связать две таблицы ключом.
Для создания этих таблиц Вы можете воспользоваться sql-патчем. Помимо создания таблиц и связей, патч создаст несколько записей.

CREATE TABLE `category` ( `id` INT(10) NOT NULL AUTO_INCREMENT, `name` VARCHAR(255) NOT NULL, PRIMARY KEY (`id`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB; CREATE TABLE `news` ( `id` INT(10) NOT NULL AUTO_INCREMENT, `id_category` INT(10) NOT NULL, `title` VARCHAR(255) NOT NULL, `small_text` TEXT NOT NULL, `text` TEXT NOT NULL, `author` VARCHAR(255) NOT NULL, PRIMARY KEY (`id`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB; ALTER TABLE `news` ADD CONSTRAINT `FK_news_category` FOREIGN KEY (`id_category`) REFERENCES `category` (`id`); INSERT INTO `category` (`category_name`) VALUES ('category_1'); INSERT INTO `category` (`category_name`) VALUES ('category_2'); INSERT INTO `news` (`id_category`, `title`, `small_text`, `text`, `author`) VALUES (1, 'title1', 'small_text1', 'text1', 'author1'); INSERT INTO `news` (`id_category`, `title`, `small_text`, `text`, `author`) VALUES (2, 'title2', 'small_text2', 'text2', 'author2'); INSERT INTO `news` (`id_category`, `title`, `small_text`, `text`, `author`) VALUES (2, 'title3', 'small_text3', 'text3', 'author3');

Теперь приступим к написанию кода. Начнем с того что создадим файл db_connection.php. В этом файле будет содержаться код для подключения базы данных. И теперь при необходимости подключить базу данных, вместо нескольких строк кода, мы будем просто подключать один файл. А вот и код этого файла:

Теперь давайте создадим страницу, на которой будет отображаться список категорий новостей, за эту страницу бедет отвечать скрипт index.php, а вто и его код:

 /* * вывод списка категорий * в списке сразу создаем ссылку на страницу, * где будет отображаться список статей той или иной категории */ foreach($rows as $row) < ?>"> 
?>

Теперь давайте создадим файл news_list.php – этот файл будет отвечать за список новостей. Ниже приведен его код:

else < $sqlQuery = " SELECT * FROM `news`; "; >// делаем запрос к бд и получаем новости $sql = mysql_query($sqlQuery) or die(mysql_error()); $rows = array(); while($r = mysql_fetch_array($sql, MYSQL_ASSOC)) < $rows[] = $r; >/* * вывод списка новостей * в списке сразу создаем ссылку на страницу, * где будет отображаться полная новость */ foreach($rows as $row) < ?>  

Author: ">Read more


?>

Теперь создадим файл news.php, он будет отвечать за страницу с полным текстом новости. Вот код этого файла:

 foreach($rows as $row) < ?>  

Author: >else < echo "News not found"; >?>

Все готово. Исходники можете скачать тут.

Источник

Новость детально

Одностраничный компонент, осуществляющий вывод детального описание новости. Компонент стандартный и входит в дистрибутив модуля.

Описание news.detail

В визуальном редакторе компонент расположен по пути: Контент > Статьи и новости > Новость детально.

Компонент относится к модулю Информационные блоки.

Параметры

Поле Параметр Описание
Основные параметры
Тип информационного блока (используется только для проверки) IBLOCK_TYPE Указывается один из созданных в системе типов информационного блока.
Код информационного блока IBLOCK_ID Для выбранного типа инфоблока указывается идентификатор информационного блока, новости из которого будут выводиться.
ID новости ELEMENT_ID Указывается числовой код, в котором передается идентификатор новости. Поле может быть оставлено пустым, если указан Код новости.
Код новости ELEMENT_CODE Указывается символьный код новости, из которого будут выбраны новости. Поле может быть оставлено пустым, если указан ID новости.
Источник данных
Показывать только активные на данный момент элементы CHECK_DATES [Y|N] При отмеченной опции будут показаны только активные на данный момент элементы.
Поля FIELD_CODE Указываются поля, которые будут отображены на странице. Заполняется из публичной части редактора, удерживая клавишу Ctrl, либо в коде, указывая массив:
Array("NAME","PREVIEW_TEXT","PREVIEW_PICTURE","DETAIL_TEXT",""),
  • A — Авто + Управляемое: автоматически обновляет кеш компонентов в течение заданного времени или при изменении данных;
  • Y — Кешировать: для кеширования необходимо определить время кеширования;
  • N — Не кешировать: кеширования нет в любом случае.

Пример вызова

IncludeComponent("bitrix:news.detail","",Array( "DISPLAY_DATE" => "Y", "DISPLAY_NAME" => "Y", "DISPLAY_PICTURE" => "Y", "DISPLAY_PREVIEW_TEXT" => "Y", "USE_SHARE" => "Y", "SHARE_HIDE" => "N", "SHARE_TEMPLATE" => "", "SHARE_HANDLERS" => array("delicious"), "SHARE_SHORTEN_URL_LOGIN" => "", "SHARE_SHORTEN_URL_KEY" => "", "AJAX_MODE" => "Y", "IBLOCK_TYPE" => "news", "IBLOCK_ID" => "3", "ELEMENT_ID" => $_REQUEST["ELEMENT_ID"], "ELEMENT_CODE" => "", "CHECK_DATES" => "Y", "FIELD_CODE" => Array("ID"), "PROPERTY_CODE" => Array("DESCRIPTION"), "IBLOCK_URL" => "news.php?ID=#IBLOCK_ID#\"", "DETAIL_URL" => "", "SET_TITLE" => "Y", "SET_CANONICAL_URL" => "Y", "SET_BROWSER_TITLE" => "Y", "BROWSER_TITLE" => "-", "SET_META_KEYWORDS" => "Y", "META_KEYWORDS" => "-", "SET_META_DESCRIPTION" => "Y", "META_DESCRIPTION" => "-", "SET_STATUS_404" => "Y", "SET_LAST_MODIFIED" => "Y", "INCLUDE_IBLOCK_INTO_CHAIN" => "Y", "ADD_SECTIONS_CHAIN" => "Y", "ADD_ELEMENT_CHAIN" => "N", "ACTIVE_DATE_FORMAT" => "d.m.Y", "USE_PERMISSIONS" => "Y", "GROUP_PERMISSIONS" => Array("1"), "CACHE_TYPE" => "A", "CACHE_TIME" => "3600", "CACHE_GROUPS" => "Y", "DISPLAY_TOP_PAGER" => "Y", "DISPLAY_BOTTOM_PAGER" => "Y", "PAGER_TITLE" => "Страница", "PAGER_TEMPLATE" => "", "PAGER_SHOW_ALL" => "Y", "PAGER_BASE_LINK_ENABLE" => "Y", "SHOW_404" => "Y", "MESSAGE_404" => "", "STRICT_SECTION_CHECK" => "Y", "PAGER_BASE_LINK" => "", "PAGER_PARAMS_NAME" => "arrPager", "AJAX_OPTION_JUMP" => "N", "AJAX_OPTION_STYLE" => "Y", "AJAX_OPTION_HISTORY" => "N" ) );?>

Источник

Вывести страницы из базы данных

Сначала надо настроить подключение к базе данных в файле .env .

Затем запустить команду ниже, которая создаст файл app/ News.php , через которую можно будет делать запросы в базу данных.

php artisan make:model News -m

Параметр -m означает, что надо создать миграцию (SQL-код) для создания таблицы news. Запустить выполнение SQL-кода можно через следующую команду:

В результате в базе данных будет создана таблица news.

Надо запустить команду ниже, которая создаст файл app/Http/Controllers/ NewsController.php .

php artisan make:controller NewsController --model=News

Параметр —model подключает файл модели, через которую происходит запросы в базу данных.

В созданном файле в двух методах надо добавить код выборки страниц.

# app/Http/Controllers/NewsController.php class NewsController extends Controller < // страница «news/» public function index() < return view('news.index', ['news' => News::all()]); > // страница «news/show/2» public function show($id) < return view('news.show', ['news' => News::findOrFail($id)]); > >

В файле routes/ web.php надо указать страницы, на которых будет выполняться код выше.

# routes/web.php (Laravel 8) use App\Http\Controllers\NewsController; Route::get('news/', [NewsController::class, 'index']); Route::get('news/', [NewsController::class, 'show']); # routes/web.php (Laravel 7) Route::get('news/', 'NewsController@index'); Route::get('news/', 'NewsController@show');

Для страницы «news/» можно указать, что в параметре «id» могут быть только числа:

# routes/web.php Route::get('news/', 'NewsController@show')->where('id', '\d+');

В методе where() указано регулярное выражение \d , которая означает, что в поле «id» можно использовать только числа.

В файле resources/views/news/ index.blade.php указан код вывода статей.

@foreach ($news as $new)  href="/news/show/id >>">title >> @endforeach

В файле resources/views/news/ show.blade.php указан код вывода страницы.

Переменные внутри фигурных скобок > выводятся через функцию htmlspecialchars() , т.е. HTML будет экранироваться. Чтобы выполнять HTML, переменные выводятся между .

Если на странице надо просто вывести фигурные скобки, например, > , то используется код @> .

Laravel работает через шаблонизатор Blade, поэтому файлы шаблонов заканчиваются на «blade.php».

Обновлено: 02 декабря 2021 | История изменений

Авторизуйтесь, чтобы добавлять комментарии

Источник

Как добавить новость на сайт c помощью PHP. Часть 1

Как добавить новость на сайт c помощью PHP. Часть 1

Доброго времени суток! В данном цикле статей мы рассмотри с Вами, как можно реализовать простую систему с помощью которой можно будет добавлять новости на сайт. Реализована она будет на PHP.

Итак, для начала рассмотрим структуру нашего проекта:

.
├── css
│ ├── bootstrap.min.css
│ └── style.css
├── images
│ └── php-add-news-on-site.jpg
├── models
│ └── news_model.php
├── templates
│ ├── form.phtml
│ └── index.phtml
├── config.php
├── core.php
├── index.php
├── news.php
└── news_table.sql

Рассмотрим по отдельности каждую папку.

  • css — как нетрудно догадаться папка со css-стилями. В примере используется Bootstrap 5
  • image — папка для разных изображений
  • models — папка моделей для работы с базой
  • templateshtml-шаблоны
  • config.php — настройки доступа к базе данных и другие настройки
  • core.php — несколько базовых функций
  • index.php — выводит список последних новостей
  • news.php — добавляет новость в базу
  • news_table.sqlSQL-скрипт для создания таблицы новостей

Теперь рассмотрим подробнее SQL-скрипт и HTML-шаблоны.

create table news
(
id int auto_increment,
title varchar(512) not null,
content text not null,
created_at datetime default now() null,
constraint news_pk
primary key (id)
);

В данном примере новость имеет заголовок (text) и содержимое (content), а также дату добавления (created_at). Это минимально необходимые данные.

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

index.phtml — вывод списка новостей

Добавить новость

—>

form.phtml — форма добавления новости


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

Создано 25.01.2022 13:40:02

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

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

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

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

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

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

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

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

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

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

    Источник

    Читайте также:  Php работа с файлами задачи
    Оцените статью