slip31, а это уже дело запроса к базе. У Вас будет старое значение (oldAttribute) и новое значение для пункта меню. Если Вы меняете двойку на тройку, то сначала обновляете существующую двойку, присваиваете ей третий номер, а потом уже записываете новое значение.
slip31, получается, что для старого второго пункта Вы должны увеличить значение на 1, а для старого третьего записать новое значение 2 и обновить в базе данные только для этих двух пунктов.
slip31, как я понял Вас.
Вам надо отдельное поле, в котором будет храниться порядковый номер пункта меню. Правильно?
Если да, то значения этого поля должны идти по порядку - 1,2,3,4,5,6...10. Уникальность здесь не нужна.
Доброй ночи.
1) Первой строкой пишите error_reporting(E_ALL)
2) Убираете везде "@", это подавляет ошибки и поэтому затрудняет определить причину не работы скрипта.
3) Инициализируете переменные.
4) Не передавайте заголовки в массиве.
5) Почитайте документацию.
Пока всё.