0 Пользователей и 1 Гость просматривают эту тему.
  • 5 Ответов
  • 498 Просмотров
*

Den JW

  • Осваиваюсь на форуме
  • 26
  • 2 / 0
Добрый день!
Столкнулся с такой проблемкой...
Появилась необходимость создания большого количества пунктов меню, и, само собой, решил ее реализовать ч/з SQL запросы.
Но при добавлении пунктов послетали все привязки и сортировка. Проблемой явились поля lft rgt.  С самим явлением lft rgt разобрался, но появилось еще больше вопросов, т.к. добавляя один пункт, я должен менять сразу несколько других...
Если кто-то с подобным сталкивался, помогите разобраться. 
*

voland

  • Легенда
  • 11031
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
*

pavelrer

  • Давно я тут
  • 611
  • 10 / 2
Re: Создание пункта меню через БД
« Ответ #2 : 18.03.2020, 20:43:01 »
Цитировать
С самим явлением lft rgt разобрался
точно!?
lft rgt - что за зверь поля?
Роберту СПС, до сих пор не могу осмыслить(Оправдание - Нет времени! :) )
! А ежли к вашему решению с lft rgt сверх компонент не дурной дабавим?
Прошу поделиться опытом с lft rgt! (+1 в lft и +1 в rgt от lft : - не решение!)
*

sivers

  • Живу я здесь
  • 2334
  • 316 / 0
Re: Создание пункта меню через БД
« Ответ #3 : 18.03.2020, 21:51:26 »
Прошу поделиться опытом с lft rgt! (+1 в lft и +1 в rgt от lft : - не решение!)
Это порядок сортировки в древовидных структурах. Разность между rgt и lft (между правым и левым) показывает сколько элементов внутри (т.е. сколько дочерних). Рассчитать их можно, если построить все дерево, а потом пробежаться по нему рекурсивно. А смысл их в том, что когда уже рассчитаны, то можно выстраивать отсортированные элементы без необходимости строить все дерево предварительно.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

pavelrer

  • Давно я тут
  • 611
  • 10 / 2
Re: Создание пункта меню через БД
« Ответ #4 : 18.03.2020, 22:07:53 »
Цитировать
sivers
В чем фича перед оптимизированным! запросом в базУ!
По простому если можно :)
*

sivers

  • Живу я здесь
  • 2334
  • 316 / 0
Re: Создание пункта меню через БД
« Ответ #5 : 18.03.2020, 22:28:30 »
По простому если можно
Например, есть у вас большое древовидное меню (а то и несколько). Вы из параметров страницы получаете ИД текущего пункта меню. Допустим это 184. И вам надо вытащить из базы все дочерние подпункты (и их подпункты - у нас же дерево) этого вот пункта меню. Как это сделать?
Вы читаете сначала запись этого пункта из БД. Там есть parent_id. В принципе, этого отношения к родителю достаточно, чтоб построить все дерево меню и потом из него "выкусить" ваш пункт с его дочками. Но это же нерационально как-то. А в lft-rgt подходе достаточно выполнить запрос вида
Код
WHERE `lft` > $itemLft AND `rgt` < $itemRgt
где $ItemLft и $itemRgt - это lft и rgt вашего 184-го пункта меню соответственно.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Cайт через браузер недоступен

Автор rezchik

Ответов: 0
Просмотров: 207
Последний ответ 01.04.2023, 10:49:08
от rezchik
Как определить главную страницу без меню?

Автор d0ublezer0

Ответов: 4
Просмотров: 758
Последний ответ 23.03.2023, 13:26:57
от gen2023
Странное поведение меню

Автор kochevnik

Ответов: 11
Просмотров: 355
Последний ответ 15.03.2023, 15:08:48
от kochevnik
Как назначить пункту меню ссылку на категории К2?

Автор kochevnik

Ответов: 1
Просмотров: 176
Последний ответ 12.03.2023, 16:26:44
от kochevnik
Редактирование title через страницу

Автор toxic_rain

Ответов: 1
Просмотров: 191
Последний ответ 28.02.2023, 11:54:28
от sivers