Форум древовидный, а как?
6 повідомлень
#15 років тому
Вот сижу и не могу сообразить, как сделать древовидный форум. Как писать данные и как выстроить это дерево, как данные метить, кто кому и зачем....Пример см. на Яндекс.Фотки - комментарии к фотографиям.
16382 повідомлення
#15 років тому
Держим у сообщения идентификатор либо топика - тогда это нулевой уровень, либо идентификатор сообщения на которое оно было ответом. И все, собственно. Можно иначе.
3240 повідомлень
#15 років тому
Цитата ("papex"):Вот сижу и не могу сообразить, как сделать древовидный форум. Как писать данные и как выстроить это дерево, как данные метить, кто кому и зачем....
Пример см. на Яндекс.Фотки - комментарии к фотографиям.
Прошу прощения, но немного не ясно.
Вас интересует именно техническая реализация? Или непонятно что-то из теории? Или что вызывает вопросы?
Пожалуйста, сформулируйте вопросы более конкретно, чтобы на них можно было бы давать конкретные же ответы.
6 повідомлень
#15 років тому
Мне не понятна теоретическая часть. Как программа поймет, какой пост за каким сдедует?
6 повідомлень
#15 років тому
Цитата ("frig"):Держим у сообщения идентификатор либо топика - тогда это нулевой уровень, либо идентификатор сообщения на которое оно было ответом. И все, собственно. Можно иначе.
не понятно. А как их выводить в правильном порядке?
48 повідомлень
#15 років тому
Все на самом деле просто. для этого нам необходимо представить структуру например организации федеральных округов и субъектов федерации например России
где:
ID PARENT_ID S_NAME
0 Россия
1 0 Уральский ФО
2 1 Свердловская Область
3 1 Курганская область
И так, подведм итог, для организации древовидного форума, необходимо создать базу данных с двумя полями в таблице для имен топиков
ID - общий идентификатор (primary key)
PARENT_ID - идентификатор вложенности
для организации порядка следования можно добавить поле N_ORDER и потом сортировать по нему при написании запроса.
16382 повідомлення
#15 років тому
Цитата ("papex"):не понятно. А как их выводить в правильном порядке?
Выбираем все сообщения у которых стоит идентификатор поста и родитель 0. При переборе сообщений делаем следующее. При каждом сообщении выбираем сообщения у которых в поле родителя стоит идентификатор текущего. Тут рекурсивно надо выбирать. Вообще это типичный пример рекурсии, мне кажется, что даже в примерах при описании рекурсии его приводят.
Можно привести пример, но это довольно длинно. :-)
6 повідомлень
#15 років тому
frig, Sum, Видимо, я туплю. Старею... )))
1.0
- 1.1
--1.1.1
---1.1.1.1
--1.1.2
---1.1.1.1
-1.2
--1.2.1
-1.3
2.0
-2.1
и т.д. Вот как же это в базу записать а потом разобрать?
16382 повідомлення
#15 років тому
Тогда попробуем вот так. первая цифра - номер поста, вторая - номер родителя1 0
2 0
-3 2
--4 3
-5 3
--6 5
---7 6
8 0
-9 8
10 0
Отступом показал кто к чему относится. отступом не получилось. сейчас.
16382 повідомлення
#15 років тому
Можно так, а лучше просто грузить все отзывы к топику, а потом перебирать в массиве. Тогда один запрос, пара циклов и все.
246 повідомлень
#15 років тому
Оффтопик
О, родной Курган случайно всплыл 

а по сабжу:
не, много-много раз не надо. Можно ввести не только принадлежность поста родителю, но хранить отдельно "ключевые" посты, которые есть начало темы. Тогда у всех "внутри темы" будет одинаковое это значение, но разные родители, чтобы построить дерево.