Движение товаров в прайсе

m2k

Новичок
Движение товаров в прайсе

Добрый день:)
есть прайс в нём есть разделы подразделы и в подразделах соответсвенно товары... так вот есть такая задача нужно чтобы каждый товар можно было "двигать" по прайсу. допустим сортировка такова вида ORDER BY date DESC дата (дата хранится числом секунда с начала никс эпохи) тоесть новый товар помещается на самый верх при сортировке.... ну так вот нужно както реализовать так чтобы можно было любой товар поместить допустим после 1ого или после 22 или в после любого другова товара.... была идея просто прибавлять 1 (или отнимать 1 взависимости куда двигать) к дате после или перед каким товаром должен идти перемещаемый товар... но есть загвоздка в том что если часто двигать товары то даты могут стать у многих товаров одинаковые или ещё чтонить нехороше:)
есть идея так же сортировать по id и при перемещении товара просто увеличивать каждый id(на 1) идущий после того места куда переместился товар но мне кажется это довольно грамозко так как если мне нада будет переместить допустим довар под id 1000 на место товара под id 1 то мне придётся сделать очень много запросов update и не будет ли это всё очень долга делаца... вот...
вообще вот такая вот фигня )) незнаю ктонить понял что я имел ввиду )) если такая тема всплывала уже то плиз скажите на какой стрице её искать ))) если чесно я даже чтото не пытался найти.... вот
 

m2k

Новичок
спасибо.
может у кого есть ещё предложения ?:) или замечания или опытом может кто полделится))
 

jer

...
а зачем делать отдельную таблицу ?, просто поле в таблице товаров завести и в нем писать порядковый номер товара для сортировки.

-~{}~ 20.11.04 14:13:

зачем делать много запросов?

если ставишь товар на место N то делаешь

update prod set prod_order=prod_order+1 where prod_order>N
insert ... на место N

если удаляешь товар с N-го места, то

delete ... с N-го места
update prod set prod_order=prod_order-1 where prod_order>N

-~{}~ 20.11.04 14:15:

при перемещении с места N1 на N2 соот-но одним update-ом меняешь prod_order у товаров от N1 до N2 на +1 или -1
 

m2k

Новичок
вообщем вот что пока получилось :) всё работает только разве что выборку может канить более оптимизировать вот но это тоже пашет )) все спасибо кто что советовал ))
mysql_query("UPDATE `price_tovar` SET num='".$_POST['to']."' WHERE id='".$_POST['id']."' LIMIT 1");
if($_POST['to']<$_POST['tovar_num']){
mysql_query("UPDATE `price_tovar` SET num=num+1 WHERE id_podrazdel='".$_POST['id_podrazdel']."' AND num>='".$_POST['to']."' AND num<='".$_POST['tovar_num']."' AND id!='".$_POST['id']."'");
}else{
mysql_query("UPDATE `price_tovar` SET num=num-1 WHERE id_podrazdel='".$_POST['id_podrazdel']."' AND num<='".$_POST['to']."' AND num>='".$_POST['tovar_num']."' AND id!='".$_POST['id']."'");
}
 
Сверху