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

Den JW

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

voland

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

pavelrer

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

sivers

  • Завсегдатай
  • 1993
  • 272 / 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

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

sivers

  • Завсегдатай
  • 1993
  • 272 / 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/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Показать пункт меню только указанным IP

Автор palexa

Ответов: 0
Просмотров: 73
Последний ответ 28.07.2022, 14:18:29
от palexa
Исчезло меню при редактировании материалов и категорий

Автор Lier

Ответов: 20
Просмотров: 1488
Последний ответ 27.06.2022, 15:29:04
от dron
Не устанавливается компонент через панель управления

Автор Margarita

Ответов: 1
Просмотров: 141
Последний ответ 15.06.2022, 12:28:18
от Margarita
Прием заявок через форму обратной связи

Автор timssky

Ответов: 6
Просмотров: 225
Последний ответ 02.06.2022, 17:33:52
от marksetter
Как присвоить класс блокам через JS?

Автор onniby

Ответов: 2
Просмотров: 317
Последний ответ 01.06.2022, 04:25:11
от beliyadm