81
БД (SQL и пр.) / Изменение порядка отображения материала на сайте
« Последний ответ от crazy_man 11 Июнь 2012, 04:16:53 »Всем доброго. Подскажите пожалуйста тупому
Как грамотно сделать изменение порядка отображения материала на сайте..
Имеется админка, в которой хочу прикрутить чтоб админ мог определять в каком порядке юзер видит материал..
Хочу сделать листбокс в котором перечислены материалы, и при апдейте в таблицу записывался нужный order. Вся проблема в пересчете order\'ов
Сейчас зделано так:
листбокс: \"Порядок отображения материала на сайте (после)\", value в котором равно индексу материала, т.е.Код PHP
При выборе материала из списка я конвертирую id в order и прибавляю к нему единицу:
Имено так (в листбоксе материалы расположены не по order, а по id) я сделал потому, что сейчас колока order у всех материалов = 0.
Впринципе, на первый взгляд работать будет. Но косячно. Будут поялвятся материалы с дублирующимся значением order, а это не есть хорошо.
Как бы избежать дублирования (одинаковых значений) в order ? Или вообще как правильно это сделать ?
Уже весь мозг себе сломал)))

Имеется админка, в которой хочу прикрутить чтоб админ мог определять в каком порядке юзер видит материал..
Хочу сделать листбокс в котором перечислены материалы, и при апдейте в таблицу записывался нужный order. Вся проблема в пересчете order\'ов
Сейчас зделано так:
листбокс: \"Порядок отображения материала на сайте (после)\", value в котором равно индексу материала, т.е.Код PHP
Код: php
select id, name from material order by position ->
При выборе материала из списка я конвертирую id в order и прибавляю к нему единицу:
Код: php
list($order)=mysql_fetch_array(mysql_query(\"select position from material where id=\".(int)$_POST[order]));
$order++;
Имено так (в листбоксе материалы расположены не по order, а по id) я сделал потому, что сейчас колока order у всех материалов = 0.
Впринципе, на первый взгляд работать будет. Но косячно. Будут поялвятся материалы с дублирующимся значением order, а это не есть хорошо.
Как бы избежать дублирования (одинаковых значений) в order ? Или вообще как правильно это сделать ?
Уже весь мозг себе сломал)))