За последние 24 часа нас посетили 54218 программистов и 1724 робота. Сейчас ищет 831 программист ...

Запросом выдернуть под комментарии комментарий :)

Тема в разделе "PHP для новичков", создана пользователем Invision, 7 сен 2011.

  1. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Есть таблица с комментами структура

    com_id - com_parent_id - com_table_name - com_text
    ---1----------90------------------Articles----------Я коммент---
    ---2-----------1-------------------Comments------Я подкоммент

    Помогите запрос правильно составить чтобы кол-во получить (p.s ниже пример работает только без подкомментов)

    SELECT * FROM Comments WHERE (com_parent_id='.$row->art_id.' AND com_table_name = "Articles") OR (чтототут)

    или возможно только через цикл подсчитать? нужно добавить что то типо где com_table_name = "Comments" AND com_parent_id=com_id
     
  2. dimka3210

    dimka3210 Активный пользователь

    С нами с:
    17 июн 2010
    Сообщения:
    55
    Симпатии:
    0
    Адрес:
    Брянск
    mysql_num_rows()?
     
  3. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    count вывести не проблема, говорю же
    т.е нужно одним запросом обратиться еще и к com_table_name=Comments и com_id(текущего коммента)=com_parent_id
     
  4. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    сделал рекурсивно но это прибавило нагрузку. если возможно сделать одним запросом подскажите.
     
  5. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    У тебя есть лес комментариев и ты хочешь вытащить одно дерево, так?
    Тогда я бы изменил способ хранения комментариев, что бы можно было легко вытаскивать дерево. Иначе нужна рекурсия.
    http://www.php.ru/forum/viewtopic.php?t=27758

    Или у тебя уровень комментирования ограничен 2-мя и надо тупо вытащить подкомментарии? Тогда можно тупо продублировать запрос:

    [sql]SELECT * FROM Comments WHERE (com_parent_id='.$row->art_id.' AND com_table_name = "Articles") OR
    (com_parent_id in (SELECT * FROM Comments WHERE com_parent_id='.$row->art_id.' AND com_table_name = "Articles")
    [/sql]