powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Реализация вложенных страниц
9 сообщений из 9, страница 1 из 1
Реализация вложенных страниц
    #38116397
spider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, как можно было бы реализовать следующее?

Есть таблица страниц - pages(int id, text text, int parent_id, string alias)

К странцам обращаются по следующему адресу http://test.com/alias страницы 1/alias страницы 2/alias страницы 3/alias страницы 4/...

Уровней может быть неограниченное количество.

Подскажите, как модно было бы реализовать алгоритм поиска страницы?

Не хотелось бы делать множество запросов к бд, но так же и не хотелось бы вытаскивать все записи из таблицы pages. Можно было бы реализовать, другим способом?
...
Рейтинг: 0 / 0
Реализация вложенных страниц
    #38116402
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант разбить путь по /
Затем составить запрос так, что количество джоинов будет равно количеству компонентов пути.
...
Рейтинг: 0 / 0
Реализация вложенных страниц
    #38116413
spider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettКак вариант разбить путь по /
Затем составить запрос так, что количество джоинов будет равно количеству компонентов пути.

Как раз так сейчас и реализовываю, есть еще идея с функцией
...
Рейтинг: 0 / 0
Реализация вложенных страниц
    #38116443
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select * where alias = последний алиас?
...
Рейтинг: 0 / 0
Реализация вложенных страниц
    #38116468
spider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowselect * where alias = последний алиас?

этот вариант не катит.
...
Рейтинг: 0 / 0
Реализация вложенных страниц
    #38116473
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно еще выбрать в IN все алиасы а потом форечем пробежаться по массиву и проверить, что цепочка не нарушается.
...
Рейтинг: 0 / 0
Реализация вложенных страниц
    #38116492
spider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hettможно еще выбрать в IN все алиасы а потом форечем пробежаться по массиву и проверить, что цепочка не нарушается.

Так сейчас и сделал) спасибо, но все же интересно как реализовывются подобные алгоритмы, например отображение вложенных комментариев и т.д.
...
Рейтинг: 0 / 0
Реализация вложенных страниц
    #38116635
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторо все же интересно как реализовывются подобные алгоритмы, например отображение вложенных комментариев и т.д.
зависит от субд. для mysql y нас nested set
...
Рейтинг: 0 / 0
Реализация вложенных страниц
    #38116752
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spider13,

1. в таких случаях иногда создают поле full_alias в котором хранят весь путь. И там уже как скарекрой написала.
2. В кеше хранить полные пути до каждой старницы
3. либо делать запрос вида:

Код: php
1.
2.
3.
4.
5.
select p3.*
from pages p1
inner join pages p2 on p1.id = p2.parent_id and p1.alias="alias1"
inner join pages p3 on p2.id = p3.parent_id and p2.alias="alias2"
WHERE p3.alias="alias3"
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Реализация вложенных страниц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]