Просмотр темы
Как сделать вывод из базы данных (древовидные комментарии)
|
|
Zaxap |
Опубликовано 07.02.2015 03:18
|
![]() Элита ![]() Сообщений: 1090 Зарегистрирован: 05.09.2012 10:32 |
Здравствуйте! Почитал немного про вывод древовидных комментариев - ужаснулся малость... Потом нашел на 1 //id родителя 1_1 //дочерний комментарий 1 (id комментария) 1_2 //дочерний комментарий 2 1_2_1 //внучатый комментарий 1 (дочерний комментарий для 2 дочернего комментария) 1_2_2 //внучатый комментарий 2 1_3 //дочерний комментарий 3 1_3_1 //внучатый комментарий 1_3_1_1 //правнучатый комментарий (и т.д., и т.п.) Только вот тут одна проблема: никоим образом не вижу, как выводить это нормально из базы данных, тем более в виде "дерева"... Помогите, кто чем сможет ![]() И скажите, нормальная ли идея (мне кажется, можно сделать и получше...сейчас подумал насчет всякого рода возможных багов)... Изменил(а) Zaxap, 07.02.2015 05:52 Зло не дремлет, а я добрый...
|
|
|
grungestranger |
Опубликовано 07.02.2015 07:51
|
![]() Пользователь ![]() Сообщений: 83 Зарегистрирован: 25.02.2013 21:52 |
Я считаю, что никак нельзя, даже используя переменные mysql-ские и т.д. Поэтому надо делать это в php. Если выводить немного - то проблем нет. А если записей много, плюс разбивка по страницам, тогда скрипт может выполняться достаточно долго. Объединено 07.02.2015 07:54: Это делается функцией, которая вызывается сама в себе. Изменил(а) grungestranger, 07.02.2015 07:54 |
|
|
Zaxap |
Опубликовано 07.02.2015 08:44
|
![]() Элита ![]() Сообщений: 1090 Зарегистрирован: 05.09.2012 10:32 |
grungestranger, строить - понятно, что php... но тут проблема в другом: как именно разместить нормально комментарии в mysql-базе... причем без parent_id (как понял, с pid это чревато багами)... Зло не дремлет, а я добрый...
|
|
|
Polarfox |
Опубликовано 07.02.2015 08:55
|
![]() Администратор ![]() Разработчики ![]() Группа поддержки ![]() Сообщений: 3387 Зарегистрирован: 20.08.2010 14:03 |
Ид комента + ид родителя и вывод делаешь по порядку - те как были сделаны, а форматируешь уже в зависимости от наследования. разве тут есть сложности? можешь кстати IPB разобрать, довольно вменяемый форум вроде, там есть древовидные посты. Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
|
|
|
Zaxap |
Опубликовано 07.02.2015 09:18
|
![]() Элита ![]() Сообщений: 1090 Зарегистрирован: 05.09.2012 10:32 |
Т.е. сделать так, как я сделал свой древовидный список услуг?..
Изменил(а) Zaxap, 07.02.2015 23:40 Зло не дремлет, а я добрый...
|
|
|
Polarfox |
Опубликовано 07.02.2015 18:32
|
![]() Администратор ![]() Разработчики ![]() Группа поддержки ![]() Сообщений: 3387 Зарегистрирован: 20.08.2010 14:03 |
Необычный код, ну похоже на то, а в чем вопрос? Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
|
|
|
Zaxap |
Опубликовано 07.02.2015 23:38
|
![]() Элита ![]() Сообщений: 1090 Зарегистрирован: 05.09.2012 10:32 |
PolarFox, как сделать вывод комментариев, минимально нагружая сервер...
Зло не дремлет, а я добрый...
|
|
|
Polarfox |
Опубликовано 08.02.2015 07:40
|
![]() Администратор ![]() Разработчики ![]() Группа поддержки ![]() Сообщений: 3387 Зарегистрирован: 20.08.2010 14:03 |
Добавить кэш, выбирать постранично. А вообще нужно вначале понять - где нагрузка. Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
|
|
|
Rush |
Опубликовано 08.02.2015 11:24
|
![]() Администратор ![]() Разработчики ![]() Группа поддержки ![]() Сообщений: 1418 Зарегистрирован: 31.08.2010 14:41 |
че тут сложного, выбираешь все комменты, потом рекурсивной функцией строишь дерево. рекурсию можно реализовать 2мя способами, собственно с помощью самой рекурсии, т.е. последовательного вызова функции внутри себя, либо с помощью передачи данных по ссылке. второй метод сложней понять, но он проще в реализации. пример
|
|
Поделиться этой темой | |
Социальные закладки: |
![]() ![]() ![]() ![]() ![]() ![]() |
URL: | |
BBcode: | |
HTML: |
Перейти на форум: |