Ошибка при смене порядка пунктов меню

Появляется ошибка MySQL и порядок не меняется

#1 15 марта 2013 в 09:46
Хотел поменять порядок пунктов в меню — новый пункт поднять до нужной позиции. Когда нужный пункт дошёл до пункта, который имеет вложенные подпункты стала появляться ошибка с куском MySQL запроса. После появления ошибки полложение пунктов меню не поменялось.

Вот как выглядит экран перед появлением ошибки:


Вот как выглядит сообщение об ошибке:
  1. Nested sets error: UPDATE cms_menu SET NSLeft = NSLeft + 0, NSRight = NSRight + 0 WHERE NSLeft >= AND NSRight <=
URI запроса (если это поможет): /admin/index.php?view=menu&do=move_up&co=8&id=54

Версия движка: 1.10.1
#2 15 марта 2013 в 16:21
Проверь в админке целостность деревьев БД. Иногда помогает
#3 15 марта 2013 в 16:34
Просто удалите неиспользуемые пункты меню и должно заработать
#4 15 марта 2013 в 17:14
А если они все используемые?
#5 15 марта 2013 в 17:18


А если они все используемые?

nedoriko

Тоже была такая ошибка, на сколько я знаю она вроде как с 1.8 до сих пор идёт решения небыло. Я теперь стараюсь пункты сильно не двигать и изначально продумываю структуру ежели что через Мускул ибо тоже падало. проверка деревьев на рабочем проекте убийство особенно ежели в меню много пунктов.
#6 15 марта 2013 в 17:27
Ну вот лично я исправлял в компоненте видео и на форуме через админку (структура деревьев) сработала в обоих случаях безотказно.
#7 15 марта 2013 в 17:29

Проверь в админке целостность деревьев БД. Иногда помогает

nedoriko
Проверил. Ошибок не найдено.

Просто удалите неиспользуемые пункты меню и должно заработать

Clear
Странно. Но после удаления неиспользуемых пунктов ошибка сохранилась.

Кажется начинаю понимать почему ошибка возникает — откуда-то взялись два пункта с одинаковым ID:


Нажал удалить нерабочее — удалились оба. Теперь ошибка не появляется. В принципе, моя проблема решена (хоть и неясно из-за чего случилось изменение ID пунктов меню).
#8 15 марта 2013 в 17:34
Ааа. Да. Вспомнил. И у меня такое было. Тоже только через удаление и создание по новой решил этот вопрос.
#9 15 марта 2013 в 18:17


Хотел поменять порядок пунктов в меню — новый пункт поднять до нужной позиции. Когда нужный пункт дошёл до пункта, который имеет вложенные подпункты стала появляться ошибка с куском MySQL запроса. После появления ошибки полложение пунктов меню не поменялось.

Вот как выглядит экран перед появлением ошибки:


Вот как выглядит сообщение об ошибке:

  1. Nested sets error: UPDATE cms_menu SET NSLeft = NSLeft + 0, NSRight = NSRight + 0 WHERE NSLeft >= AND NSRight
  2.  

WebiLang

Администрация в лице фуза, не однократно заявлала — что этой ошибки нет.

Хотя на всех моих проектах она есть, и не куда не делась. Как ее решить, очень интересно
#10 15 марта 2013 в 19:34
У меня на всех сайтах 1.10.1 — нет такой ошибки. На 1.9 была. Если сайт после миграции, возможно, надо всё таки пройти одноразово процедуру сноса меню
#11 15 марта 2013 в 19:53

На 1.9 была.

Олег Васильевич я
Наш сайт делался сразу на 1.10.1
#12 15 марта 2013 в 20:19


У меня на всех сайтах 1.10.1 — нет такой ошибки. На 1.9 была. Если сайт после миграции, возможно, надо всё таки пройти одноразово процедуру сноса меню

Олег Васильевич я

Значит вы не пользуетесь меню😊Точнее. не подгоняете его.

Самый простой способ получить ошибку — это включить фильтр (например по menu1) и перемещать пункты меню, так, чтобы например в mainmenu были меню с порядком от 1, 2, 3, 10, 11, 12 а в menu1 были 4, 5, 6, 13, 14, 15 и нужно перенести пункт 15 выше чем 3

при фильтре menu1
#13 15 марта 2013 в 20:19
WebiLang, Вам все равно никто не поверит.
#14 15 марта 2013 в 20:48
Это старая проблема и она до сих пор не решена. Старайтесь не двигать пункты и не делайте вложенных подпунктов.
#15 15 марта 2013 в 21:35
Нет такой проблемы с деревьями меню.Есть проблема нежелания вникнуть в суть происходящего.
Если ВЫ заметили. то 1-2 это уже номера по порядку той ветки меню которая вложена в 5.Если добавить еще подпункт в пункт 5 Ю то появиться подпункты по порядку 1-2-3.Каждый вложенный пунк меню будет начинаться с 1.Поэтому если вы видите порядок (по скрину) 4-5-1-2-3.ТО это не значит что можно сделать 1-2-3-4-5.Почему.Потому что 1-2 это подпункты.И если создать в пункте 4 допуcтим 2 подпункта то порядок будет 4-1-2 4главная 1подпукнкт 2подпункт, далее порядок 5-1-2 5главная -1-2подпункты.
Если в любом основном (родительском) создать дочерние, то порядок дочерних начинаеться естественно 1-2-3-4-5.
Поэтому (по скринну) подведу итог… НЕТ ошибки! Пункты 4-5-3 это родительские пункты.А 1-2 это дочерние пункты родителя 5.
Надеюсь, Вы перестаните биться с проблемой расположения, как приминтивно привыкли в жизни: 1-2-3-4-5-6-7-8.
Пример Есть меню порядок 3-25-6-, создаем в 25м пять вложенных пунктов. и видим порядок-3-25-1-2-3-4-5-6
Во 6 это пункт родитель и невозможно его передвигать с 1-2-3-4-5.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.