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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сортировка, изменить порядок сортировки 
:(
    Опции темы
lumentek
Дата 1.3.2010, 02:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



есть таблица - столбцы id|name|sort

сортировка происходит по полю sort, которое имеет первоначальное значение столбца id(primary key)

мне нужно сделать возможность сдвигать позицию на уровень выше или ниже. Вся проблема в том что мне нужно как-то узнать значение поля sort предыдущей или следующей записи. 

Или как можно правильно реализовать  такое?
PM MAIL   Вверх
Kano
Дата 1.3.2010, 02:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



У тебя есть $id записи, которую нужно двинуть. Достаёшь её позицию. Далее получаешь значение позиции записи «выше»
Код

SELECT MIN(sort) FROM ... WHERE sort > $p1

или «ниже»
Код

SELECT MAX(sort) FROM ... WHERE sort < $p1


Ну а дальше осталось их обменять
Код

UPDATE ... SET sort = ({$p1} + {$p2} - sort) WHERE sort IN ($p1, $p2)


Добавлено через 1 минуту и 25 секунд
Правда название "sort" несколько неудачно, imho. p, pos, position 
PM MAIL   Вверх
lumentek
Дата 1.3.2010, 03:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Спасибо! Только не могу понять принцип работы 3 запроса. И для чего в нем нужно - sort?
PM MAIL   Вверх
Kano
Дата 1.3.2010, 03:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Это такой обмен значений. sort принимает одно из значений: $p1 или $p2
PM MAIL   Вверх
Nigel
Дата 2.3.2010, 00:41 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


познаю мир
**


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

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



Цитата

Вся проблема в том что мне нужно как-то узнать значение поля sort предыдущей или следующей записи. 

Зачем? Увеличьте интервалы сортировочного поля. Вместо единицы выберите, например, +100.
PM MAIL   Вверх
Ипатьев
Дата 2.3.2010, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

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



Цитата(lumentek @  1.3.2010,  02:08 Найти цитируемый пост)
Вся проблема в том что мне нужно как-то узнать значение поля sort предыдущей или следующей записи. 

неужели это так сложно? А если подумать? 
PM MAIL   Вверх
lumentek
Дата 13.3.2010, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Ипатьев, тут уже подсказали как это правильно сделать. Или Вы можете еще сказать способ как правильно это сделать? Или Вы так на словах просто говорите?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




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


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

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