Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> реализация управление структурой сайта, перемещение элементов "вверх"/"вниз"... 
:(
    Опции темы
Revares
Дата 25.4.2008, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 18.4.2008

Репутация: нет
Всего: нет



Пишу библиотеку для управления меню с ссылками на различные разделы сайта.
Вобщем практически всё сделал, кроме управления местоположения  элементов  в списке разделов.

К примеру мне нужно передвинуть элемент меню "вверх" на позицию или же опустить "вниз",
каким образом это грамотно реализовать?

Структура таблицы menu в БД:

id - int, pid (родительский идентификатор) int, title varchar.


Это сообщение отредактировал(а) Revares - 25.4.2008, 14:52
PM MAIL   Вверх
krundetz
Дата 25.4.2008, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



Можете добавить дополнительное поле в таблицу где будете указывать позицию элемента в меню. И выводить элементы этого меню в соответствие с позициями.


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
Revares
Дата 25.4.2008, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 18.4.2008

Репутация: нет
Всего: нет



Неплохой вариант! Спасибо.
Есть ещё идеи?
PM MAIL   Вверх
Revares
Дата 25.4.2008, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 18.4.2008

Репутация: нет
Всего: нет



Так, снова вопрос, поле id у меня уже объявлено auto_increment primaty key, так что MySQL не позволяет создрать ещё одно поле poz с таким же типом :-(
Что делать в этом случае?
PM MAIL   Вверх
bars80080
Дата 25.4.2008, 15:50 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



но тебе же не нужно заполнять его автоматом, вставляй значение сам
по-умолчанию, оно должно быть больше, чем кол-во пунктов в разделе, если надо поменять, соответственно другое значение
PM MAIL WWW   Вверх
Feldmarschall
Дата 25.4.2008, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



а зачем тебе с тем же типом???
PM   Вверх
Leoo
Дата 25.4.2008, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 270
Регистрация: 3.10.2005
Где: г. Обнинск

Репутация: 1
Всего: 3



Пусть у тебя будет уникальный ID. Создай еше два поля OrderNum (порядковый номер раздела) и поле Level (уровень раздела). Меняя OrderNum у тебя будет меняться порядок разделов на одном уровне. А меняя Level у тебя раздел будет подниматься (правда для этого надо отслеживать его нового родителя).


--------------------
Если вы не страдаете паранойей, это не значит, что они за вами не летят!
PM MAIL WWW ICQ   Вверх
wishamster
Дата 25.4.2008, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 20.4.2008

Репутация: нет
Всего: нет



У меня была такая же задача и решил я ее так.
Делаешь еще одно поле ord - int.

Когда будешь записывать новый элемент:
1. найди в таблице max(ord)
2. для нового элемента в поле ord запиши значение max(ord)+1
И все.
И детей определенного родителя будешь показывать с расчетом об ord.

Это сообщение отредактировал(а) wishamster - 25.4.2008, 23:24
PM MAIL   Вверх
awers
Дата 26.4.2008, 01:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: 21
Всего: 31



Как то вы плоско смотрите на задачи... Можно к примеру так

Главная 1000
Вторая 2000
Третья 3000

А потом двигай нехачу ) и в середину можно двигать и как угодно.
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0500 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.