![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Revares |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 18.4.2008 Репутация: нет Всего: нет |
Пишу библиотеку для управления меню с ссылками на различные разделы сайта.
Вобщем практически всё сделал, кроме управления местоположения элементов в списке разделов. К примеру мне нужно передвинуть элемент меню "вверх" на позицию или же опустить "вниз", каким образом это грамотно реализовать? Структура таблицы menu в БД: id - int, pid (родительский идентификатор) int, title varchar. Это сообщение отредактировал(а) Revares - 25.4.2008, 14:52 |
|||
|
||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
Можете добавить дополнительное поле в таблицу где будете указывать позицию элемента в меню. И выводить элементы этого меню в соответствие с позициями.
|
|||
|
||||
| Revares |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 18.4.2008 Репутация: нет Всего: нет |
Неплохой вариант! Спасибо.
Есть ещё идеи? |
|||
|
||||
| Revares |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 18.4.2008 Репутация: нет Всего: нет |
Так, снова вопрос, поле id у меня уже объявлено auto_increment primaty key, так что MySQL не позволяет создрать ещё одно поле poz с таким же типом :-(
Что делать в этом случае? |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
но тебе же не нужно заполнять его автоматом, вставляй значение сам
по-умолчанию, оно должно быть больше, чем кол-во пунктов в разделе, если надо поменять, соответственно другое значение |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
а зачем тебе с тем же типом???
|
|||
|
||||
| Leoo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 270 Регистрация: 3.10.2005 Где: г. Обнинск Репутация: 1 Всего: 3 |
Пусть у тебя будет уникальный ID. Создай еше два поля OrderNum (порядковый номер раздела) и поле Level (уровень раздела). Меняя OrderNum у тебя будет меняться порядок разделов на одном уровне. А меняя Level у тебя раздел будет подниматься (правда для этого надо отслеживать его нового родителя).
-------------------- Если вы не страдаете паранойей, это не значит, что они за вами не летят! |
|||
|
||||
| wishamster |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 20.4.2008 Репутация: нет Всего: нет |
У меня была такая же задача и решил я ее так.
Делаешь еще одно поле ord - int. Когда будешь записывать новый элемент: 1. найди в таблице max(ord) 2. для нового элемента в поле ord запиши значение max(ord)+1 И все. И детей определенного родителя будешь показывать с расчетом об ord. Это сообщение отредактировал(а) wishamster - 25.4.2008, 23:24 |
|||
|
||||
| awers |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1465 Регистрация: 22.3.2006 Где: Россия, Таганрог Репутация: 21 Всего: 31 |
Как то вы плоско смотрите на задачи... Можно к примеру так
Главная 1000 Вторая 2000 Третья 3000 А потом двигай нехачу ) и в середину можно двигать и как угодно. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |