Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
agat 18.06.2007 16:22
поправил чуток код, вроде все норм стало################################################ @moveGroup[hParams][iShift] $iShift(^math:sign($hParams.newOrderPosition - $hParams.orderPosition)) ^if($iShift){ ^oSql.void{ UPDATE groups SET orderPosition = orderPosition - ($iShift) WHERE ^if($iShift > 0){ orderPosition >= ^hParams.orderPosition.int(0) + 1 AND orderPosition <= ^hParams.newOrderPosition.int(0) }{ orderPosition > ^hParams.newOrderPosition.int(0) AND orderPosition <= ^hParams.orderPosition.int(0) - 1 } } ^oSql.void{ UPDATE groups SET orderPosition = ^hParams.newOrderPosition.int(0) ^if($iShift < 0){ + 1} WHERE id = ^hParams.id.int(0) } } # end of @moveGroup[]В противном случае, при попытке переместить первую группу на место пятой, имели пятую группу с номером 6. И так росло до бесконечности. И при попытке сменить пятую на первую - имели две первых.