ФорумПрограммированиеPHP для идиотов → Выборка дерева (обратная!)

Выборка дерева (обратная!)

  • pissflaps

    Сообщения: 148 Репутация: N Группа: Кто попало

    Spritz 31 октября 2010 г. 3:56

    Ребят помогите, что-то не пойму как рациональнее всего выбрать обратное дерево, т.е.:

    стандартная структура дерева (id,parent)

    - Категория [id=1,parent=0]
    – Категория 1 [id=2,parent=1]
    – Категория 2 [id=3,parent=1]
    — под-категория 2-1 [id=4,parent=3]


    Выбрать это все подкатегории для id=1 как два пальца обоссать.

    Теперь сама задачка
    Выбрать дерево только наоборот для под-категория 2-1 [id=4,parent=3]
    Т.е. должно на выходе получиться такое:

    под-категория 2-1
    – Категория 2
    — Категория


    Помогите хлопцы :D
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 31 октября 2010 г. 4:19, спустя 22 минуты 45 секунд

    (обратная!)

    а чем она концептуально отличается от прямой?)
    Сапожник без сапог
  • pissflaps

    Сообщения: 148 Репутация: N Группа: Кто попало

    Spritz 31 октября 2010 г. 4:28, спустя 9 минут 4 секунды

    Дуд, я епу этим вопросом себе мозг 4.5 часа.
    На мой взгляд отличается тем что, что в 1-ом варианте обычная рекурсия…
    А во втором придётся так или иначе в цикле получать родителей.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 31 октября 2010 г. 4:50, спустя 21 минуту 43 секунды


    Дуд, я епу этим вопросом себе мозг 4.5 часа.
    На мой взгляд отличается тем что, что в 1-ом варианте обычная рекурсия…
    А во втором придётся так или иначе в цикле получать родителей.
    и ты прав!!!!!!!!!!!!!!!! :D:D
    и даже!!!!!! в обоих случаях обычная рекурсия!!!!!!!!!! БИНГО!! СЕКТОР ПЛЮС
    Сапожник без сапог
  • master

    Сообщения: 3242 Репутация: N Группа: Джедаи

    Spritz 31 октября 2010 г. 5:05, спустя 15 минут 1 секунду

    pissflaps, если запрос типичный (частый) - то лучше хранить в каждой ноде всех предков
    если редкий - делай циклом
    не всё полезно, что в swap полезло
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 31 октября 2010 г. 8:21, спустя 3 часа 16 минут 6 секунд

    pissflaps, это называется "хлебные крошки", только в твоём случае они в реверсе (обычно начинаются от корня, но нынче СЕОшники думают что твой вариант правильней и даст возможность попасть в ТОП 10 как два пальца обоссать).
    А вообще я делал так: получал полностью все меню, из полученных данных строил два массива (один для обычного вывода всего дерева, второй для построения хлебных крошек) и имел профит. Структуру на память не помню, но по сути когда создашь обычный массив для дерева и сам его "разберешь" в голове, то поймешь как построить любой другой нужный тебе массив.
  • master

    Сообщения: 3242 Репутация: N Группа: Джедаи

    Spritz 31 октября 2010 г. 8:26, спустя 5 минут 4 секунды

    нынче СЕОшники думают что твой вариант правильней и даст возможность попасть в ТОП 10 как два пальца обоссать

    м?
    не всё полезно, что в swap полезло
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 31 октября 2010 г. 8:28, спустя 2 минуты 46 секунд

    master, уже не однократно видел среди "советов как попать на первое место" такую фишку, что в хлебных крошках нужно сначала ставить ту категорию, на которой сейчас находишься (либо же это будет заголовок страницы), потом уже подкатегорию и потом корневую категорию. По типу чтоб ключевые слова (заголовок страницы олибо актуальной категории) были выше к началу текста (в ХТМЛ-коде самой страницы).
  • pissflaps

    Сообщения: 148 Репутация: N Группа: Кто попало

    Spritz 31 октября 2010 г. 8:35, спустя 6 минут 43 секунды

    Всем спасибо за комменты :)

Пожалуйста, авторизуйтесь, чтобы написать комментарий!