Вывод под категорий 1м запросом

Тема в разделе "PHP", создана пользователем Joker84, 8 мар 2011.

Модераторы: latteo
  1. Joker84

    Joker84 Постоялец

    Регистр.:
    8 авг 2007
    Сообщения:
    68
    Симпатии:
    2
    Добрый день структура данных в БД такая

    пример данных
    ИД Имя категории имя родителя
    1 Автомобили 0
    2 седаны 1
    3 хетчбек 1
    4 пикам 1
    5 Тойота 2 (категория седаны)
    6 нисан 2
    7 Рулевая тяга 7 (категория Тойота)




    как вывести например :
    категорию седаны и все ее подкатегории ?

    уровней вложенности может быть много, для каждой категории проверять есть ли у нее дети невозможно, сильно нагрузит БД



    Буду очень признателен за конструктивные советы
     
  2. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    364
    Симпатии:
    117
    SELECT * FROM xx WHERE id = 2 // категория
    SELECT * FROM xx WHERE parrent_id = 2 //и все ее подкатегории
    ...
    или я чего-то не понял
    а вообще- пройдитесь по этим ссылкам
    https://nulled.cc/showpost.php?p=1733093&postcount=4

    если нужна большая вложенность и частые обращения то возможно понадобиться изменить структуру таблиц
     
  3. Joker84

    Joker84 Постоялец

    Регистр.:
    8 авг 2007
    Сообщения:
    68
    Симпатии:
    2

    данное решение неподопустимо т.к у подкатегорий есть попдподкатегории
    а у подподкатегорий есть еще вложенности. тем самым кол-во запросов будет колосальным
     
  4. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    Почитай про вложенные множества(nested sets). В интернете эта тема уже избита до нельзя.
     
    Joker84 нравится это.