Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Навигация


Автор: Vco 28.9.2003, 11:50
Как на пхп сделать что-то вроде:
Главная >> Статьи >> HTML
т.е выделяется раздел где щас пользователь
Можно и просто писать, ну разделев многа и нужен скрипт

Автор: Secandr 28.9.2003, 12:34
У меня всё забито в БД.
Таблицы:
Разделы id,name
Подразделы id,razdel_id,name
Текст id,podrazdel_id,name,text

Теперь пишем запрос на SQl и получаем строку Раздел-подраздел-название

Если интересует, могу подробнее описать.
Можно ещё хранить названия разделов и подразделов в массивах, т.е.
$razdel_name['id']='name';
***
$podrazdel_name['id']='name'
***
$podrazdel_to_razdel['id_podrazdel']=id_razdel
***
Но это уже геморой sad.gif

Автор: Vco 28.9.2003, 13:09
А без бд незя сделать?

Автор: Secandr 28.9.2003, 13:32
Можно на массивах. Я больше ничего не могу придумать.
Хотя эти массивы и будут самописной БД.

Автор: Vco 28.9.2003, 16:55
Можно поподробнее плз. Вот что должнно быть
http://name.host.ru/<a href="раздел1">РАЗДЕЛ1</a> >> <a href="раздел2"> РАЗДЕЛ 2</a> >> <a href="Документ">ДОКУМЕНТ</a>

Автор: Secandr 29.9.2003, 07:40
Код
$razdel_name['id']='name';//раздел1
$podrazdel_name['id']='name';//раздел2
$text_name[id]='name';//название статьи
$podrazdel_to_razdel['id_podrazdel']=id_razdel;//связь между раздел 1 и раздел2
$text_to_podrazdel['id_text']=id_podrazdel;// Связь между статьёй и разделом2


К нам приходят по ссылке
/show.php?id=75
Мы ищем:

Код
$head=$text_name[$id];
$r2=$text_to_podrazdel[$id];
$head='<a href="sho.php?r2='.$r2.'">'.$podrazdel_name[$r2].'</a>'.$head;
$r1=$podrazdel_to_razdel[$r2];
$head='<a href="sho.php?r1='.$r1.'">'.$razdel_name[$r1].'</a>'.$head;


Всё как-то каряво. Может кто лучше предложит?
P.S. А вот так должен быть сформирован массив:
Код
$razdel_name[1]='name1';
$razdel_name[2]='name2';
$podrazdel_name[1]='p1';
$podrazdel_name[2]='p2';
$podrazdel_name[3]='p3';
$podrazdel_name[4]='p4';
$text_name[1]='text1';
$text_name[2]='text2';
$text_name[3]='text3';
$text_name[4]='text4';
$podrazdel_to_razdel[1]=2;
$podrazdel_to_razdel[2]=2;
$podrazdel_to_razdel[3]=1;
$podrazdel_to_razdel[4]=1;
$text_to_podrazdel[1]=1;
$text_to_podrazdel[2]=4;
$text_to_podrazdel[3]=2;
$text_to_podrazdel[4]=3;

Автор: MuToGeN 29.9.2003, 09:30
Если без БД - то можно пользовать аналог БД на текстовых фаилах. А насчет самого простого постоения таблицы:

id int auto_increment primary key,
parent int

В parent лежит ID родительского раздела, если parent == 0, то раздел корневой.

Автор: Secandr 29.9.2003, 09:47
MuToGeN Да так красивше. Если только у разделов и подразделов одинаковые отрибуты...

Автор: MuToGeN 29.9.2003, 10:58
Secandr, мой вариант не ограничивает иерархию. Твой лучше для тех случаев, когда иерархия идет строго на 2 уровня.

Автор: Secandr 30.9.2003, 07:08
MuToGeN Согласен. Я про это же и написал, только коряво.

Автор: Aliance 11.12.2004, 21:22
А как с БД ?

Автор: Mal Hack 11.12.2004, 22:07
http://detail.phpclub.ru/article/2002-06-03
Эта статья очень хорошо разъясняет один из принципов построения таких вещей...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)