![]() |
|
Модераторы: skyboy |
![]()
|
|
| library |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 28.3.2008 Репутация: нет Всего: нет |
Здравствуйте.
Помогите придумать запрос на выборку данных из БД. Вобщем в таблице хранятся комментарии к статье. У каждого комментария есть id, а также есть поле ido в котором хранится id того комментария на который даёт ответ данный коментарий. Если комментарий отвечает не на другой комментарий, а на статью, то в поле ido хранится значение 0. С помощью запроса нужно организовать вывод комментариев в следующей последовательности: комментарий с id 1 и ido 0, затем ответ на него(если есть), затем ответ на ответ(если есть) и т.д (такая древовидная структура), затем следующий комментарий с ido 0. Надеюсь доступно объяснил. Возможно эту систему комментов можно как то по проще организовать? |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
формируй дерево клиентом(РНР или что там у тебя).
выбирай просто все комментарии(лучше бы в порядке увеличения вложенности). |
|||
|
||||
| Finalist |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 23.5.2006 Репутация: нет Всего: 1 |
А поля id_статьи в таблице случайно нет?
по идее в скрипт должен приходить параметр айди_статьи --- http://some.com/staty.php?id=xx не уверен, что можно сделать одним запросом... сначала нужно выбрать коменты к статье с айди хх и ido=0;
(извиняюсь за русские буквы в коде.. но шота у меня убунту подзаглючил... на англ раскладке пишет русские буквы, select набираю, получается селецт))) затем, пройтись по массиву с результатами, и выбрать дочерние коменты.
по идее, должен получится такой массив:
а еще лучше - сделать это хранимой процедурой! Добавлено через 7 минут и 37 секунд http://forum.vingrad.ru/index.php?showtopi...t&p=1482809 вот сдесь, skyboy, показал хорошую тему... там есть примеры рекурсии.. аж две,одна сразу, вторая ниже и для ООП |
||||||
|
|||||||
| igorold |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 557 Регистрация: 22.12.2005 Где: Россия->Урал-& gt;Миасс Репутация: 5 Всего: 17 |
очень просто - через left join
что-то типа:
-------------------- ... у семи нянек 14 сисек ... Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
| library |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 28.3.2008 Репутация: нет Всего: нет |
Что то я не очень понял вот эту часть
on C.id0=Comment.id where Comment.id0=0 И что впринципе должно получиться на входе? Двумерный массив комментариев из БД в нужном порядке? |
|||
|
||||
| igorold |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 557 Регистрация: 22.12.2005 Где: Россия->Урал-& gt;Миасс Репутация: 5 Всего: 17 |
Да, а проверить запрос не пробовал?
Это сообщение отредактировал(а) igorold - 2.9.2010, 14:29 -------------------- ... у семи нянек 14 сисек ... Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |