В этой статье я объясню как сделать вывод определёной категории из таблице БД по странично или другими словами: постраничный вывод категорий статей с использованием кода PHP и MySql запроса.
Вы создаете одну таблицу, к примеру марки автомобилей, в котогой есть такие поля: заглавие, описание, ключ марки авто. Таблицу мы назовем avtomobi.
SQL запрос будет следующий:
CREATE TABLE IF NOT EXISTS `avtomobi` (
`id` int(11) NOT NULL auto_increment,
`title` varchar(100) NOT NULL,
`opis` varchar(100) NOT NULL,
`avto` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
Потом вы создаете другую таблицу, где будут все ваши статьи. Но они будут разделены по категориям.
Таблица имеет такие поля: id, title, opisaniye, text, avto.
SQL запрос будет следующий:
CREATE TABLE IF NOT EXISTS `articles` (
`id` int(11) NOT NULL auto_increment,
`title` varchar(100) NOT NULL,
`opis` varchar(100) NOT NULL,
`text` text NOT NULL
`avto` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
Именно поле avto привязывается к таблице категории.
Мы добавляем в таблицу марки автомобилей такую информацию:
title = "Автомобиль volkswagen"
opis = "Какой хороший автомобиль volkswagen."
avto = "volkswagen"
При написании статьи мы вылаживаем таку информацию в таблицу articles:
title = "Страховка автомобиля Volkswagen"
opis = "Как правильно страховать автомобиль volkswagen."
text= ".................................."
avto = "volkswagen"
Пример вывода статей в определенную категорию:
Если допустим вам нужно вывести в странице перечень статей по конкретной категории, то в запросе необходимо вводить:
$cat = "volkswagen";
$result = mysql_query("SELECT * FROM articles WHERE avto = '$cat'",$db);
В этом запросе отфильтруются ТОЛЬКО те статьи, где категория volkswagen.
Пример код:
На своей странице вы ставите ссылку:
www.avto.ru/cat.php?cat=volkswagen
Т.е. вы хотите вывести все статьи, где тематика или категория volkswagen.
Код файла cat.php:
<?
include ("blocks/db.php"); // подключение к БД
if (isset($_GET['cat'])) {$cat = $_GET['cat'];} // если существует GET категории, то кидаем его в переменную.
else {$cat = "volkswagen";} // если GET не сущесвует, тогда по умолчанию будет категория volkswagen
$cat = trim($cat);
$cat = stripslashes($cat);
$cat = htmlspecialchars($cat);
// 3 кода - это защита от взлома
$result = mysql_query("SELECT * FROM articles WHERE avto = '$cat'",$db);
if(!$result){ echo "<p>Статей в этой категории еще нет. "; }else if (mysql_num_rows($result) > 0){
$myrow = mysql_fetch_array($result);
do // цикл вывода всех статей по категории
{
printf("<table width='600'><tr><td valign='top'><p><a class ='link' href='view_avto.php?id=%s&cat=%s'>%s</a></td></tr>
<tr><td valign='top'><b>Описание:</b><p>%s</p></td></tr></table>",$myrow["id"],$cat,$myrow["title"],$myrow["opis"]);
}while ($myrow = mysql_fetch_array($result));
В переменную $result заносится список всех статей, которые имеют категорию volkswagen. В цикле мы выводим все статьи.