это адрес, по которому будет
Что такое title и rub_text ? объяснять не надо. Поле address ? это адрес, по которому будет запрашиваться рубрика (новости нужно сделать рубрикой первого уровня, и в поле address будет "news"). Поле parent_id ? идентификатор рубрики уровнем выше.
Теперь, если рубики заведомо не могут быть ниже второго уровня, анализ адреса не составит особого труда.
$url = $REQUEST_URI;
// убираем слэши из начала и конца адреса
$url = ereg_replace("^/", "", $url);
$url = ereg_replace("/$", "", $url);
$dir = explode("/", $url)
// случай, когда запрошена рубрика второго уровня.
if (sizeof($dir)==2) {
// составляется запрос, объединяющий таблицу rubrika саму с собой. Здесь надо заметить только, что таблица first подразумевает рубрику второго уровня, а second, наоборот, первого.
$request = "SELECT first.id, first.title, first.rub_text FROM rubrika first, rubrika second WHERE first.parent_id=second.id AND first.address='". $dir[1]. "' AND second.address='". $dir[0]. "'";
// Отправляем запрос в базу, а потом обрабатываем результат.
$result = mysql_query($request);
if (!mysql_error() && @mysql_num_rows($result)==1) {
}
// Это на случай, если запрос прошел успешно, но ничего не найдено
elseif (!mysql_error()) {
}
// ...и на случай, если произошла ошибка.
else
die ("Ошибка БД. MySQL пишет: ". mysql_error());
}
// Запрошена рубрика первого уровня. тут и делать-то нечего :)
elseif (!ereg("/", $url)) {
$request = "SELECT id, title, rub_text FROM rubrika WHERE address='$url'";
...
};
Хватит примеров? Дальше ? дело фантазии. Подведем итоги, распишем положительные и отрицательные моменты.
+ Красивые адреса, возможность зайти в рубрику, набрав ее адрес на клавиатуре. Благодарность от фанатов клавиатуры.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий