Навигация по подразделам. Как организовать

Just_Me

Новичок
Навигация по подразделам. Как организовать

Всем привет.

Заранее извиняюсь, описание проблемы и вопрос получились очень долгими, но короче мою проблему никак не изъяснить. Прошу выделить немного времени.

В php-программировании я еще новичок, лишь недавно прочитал пару учебников, и также недавно начал создавать свой первый сайт. Сайт довольно большой по объему, представляет из себя информационный ресурс, естественно, содержит много различного рода информации.
В данный момент меня беспокоит вот какой момент. Сайт у меня устроен следующим образом: имеется раздел, в нем могут быть подразделы, и в них уже от одного до нескольких десятков тем. Как, допустим, учебник, часть такая-то - состоит из стольки-то десятков глав, часть другая - из другого количества глав. На данный момент все эти т.н."главы" этих "частей" (раз уж я провел аналогию с учебником, то ее и буду придерживаться) я располагаю в списке сам, т.е. вручную их прописываю в списке <ul>. А когда пользователь заходит в какую-нить главу, то там я сделал ссылки (как и на многих подобных проектах, которые я встречал в интернете) "вперед", "назад", "вернуться к списку" для удобства навигации. Опять же я их прописываю вручную (т.е. адрес для ссылки вперед и адрес для ссылки назад - все сам). Вот в этом и заключается мой вопрос - как можно автоматизировать этот процесс и нужно ли? Как правильно это делать? Все ли подобные ресурсы построены по какому-то принципу, или все, как и я, все пишут вручную? Ведь когда все пишешь вручную, это как-то неправильно, что-ли, а что если я добавлю еще один раздел, размещу его между другими, значит постоянно придется корректировать ссылки соседних разделов, а вдруг забуду, ошибусь, то есть повышается риск появления ошибок.
То есть я считаю, что должна быть одна функция, которая реализовывала бы эти ссылки "вперед" и "назад", а я бы ее просто подключал к каждому разделу-главе. Также список всех глав-разделов должен формироваться динамически, а я не должен его прописывать вручную, как сейчас.
Я пытался решить этот вопрос при помощи массивов - запихать все разделы с ссылками на них в массивы, сделать нужную сортировку, и ссылки "назад" и "вперед" формировать через массивы, но потратил полдня но ничего не вышло. Думал может занести их в БД, но ссылки вперед назад у меня формируются динамически (то есть я не сам пишу путь, а вызываю функцию, даю ей параметры, она преобразовывает в вид ссылки), а из бд вылавливать php код и его прогонять через функцию eval проблематично. Плюс, опять же, пробовал, не получилось.
Вобщем, хотелось бы услышать ваши мнения на сей счет, либо, кто-то с этим сталкивался или просто знает правильный способ реализации подобной задачи? Все-таки раз сайт динамический, то все должно быть соответственное, а то получается как то по "деревянному".
 

Splurov

Новичок
короче мою проблему никак не изъяснить
:-DDD

запихать все разделы с ссылками на них в массивы, сделать нужную сортировку, и ссылки "назад" и "вперед" формировать через массивы, но потратил полдня но ничего не вышло
Покажи свои попытки, а мы подскажем где ты ошибся.
Когда научимся работать с массивами можно будет и БД воспользоваться.
 

tz-lom

Продвинутый новичок
ну,для начала следовало бы обратиться к коду какой нибудь CMS/CMF , возможно даже не к коду,а просто посмотреть как работает,и подумать как сделать так же

а вообще пока следует задуматься над такими проблемами:
1-
из бд вылавливать php код и его прогонять через функцию eval
почему бы не вылавливать только аргументы к функциям и методам
2-где написанно как хранить деревья(и что это такое) в БД (подсказка:гугл)
3-почему ты пишешь код не подумав над тем что этот код должен делать
 

Just_Me

Новичок
Спасибо за ответы, но у меня такое ощущение, что я похоже переборщил в описании своей проблемы или неправильно ее выразил.
Важнее всего для меня - это знать, как другие реализовывали то, с чем столкнулся я.
Вот пример. Учебник. Поделен на части. В каждой части главы - их может быть немного (10-20) а может и много (50-60 а то и больше). Так вот внутри, эти главы между собой соединены ссылками "вперед" и "назад". Сейчас я все делаю статически - и формирую список глав (которых, как я упоминал, может быть за 50), и связываю их внутри ссылками сам (то есть в каждой главе (которых может быть много) прописываю вручную "вперед" и "назад" и сами ссылки).
Вот в чем проблема. Как то можно автоматизировать этот процесс? Потому что вдруг придется добавлять в середину этих глав (например, в той части где 50 глав в середину будут добавляться другие главы), это каждый раз придется самому просчитывать, чтобы соблюдался алфавитный порядок, и все ссылки В главах (вперед и назад) постоянно менять вручную. Крайне нудно. Как это делают другие?
Спасибо.
 

Духовность™

Продвинутый новичок
Вот в чем проблема. Как то можно автоматизировать этот процесс?
я так понимаю, у тебя записи в таблице идут, и тебе надо получать ссылку на предыдущую/следующую страницу?

примерно так SQL: [sql]select (select id from category where id < 47 order by id DESC limit 1) as d, (select id from category where id > 47 order by id ASC limit 1) as f[/sql]
 
Сверху