Как средствами MySQL сделать апдейт предыдущего id

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Как средствами MySQL сделать апдейт предыдущего id

Здраствуйте

Для изменения порядка вывода прайс-позиций нужно сделать следуйщий апдейт.

При клике на ссылке "вверх" или "вниз" позиция сдвигается в соответствующем направлении. (на подобе, административной части форума phpBB).

//order by num

Для "кликнутой :))" позиции делаем следуйщий апдейт (например сдвигаем вверх)
UPDATE price SET num=('$num'-1) WHERE id='$id' (

Для корректной сортировки предыдущую позицию(верхнюю) нужно сдвинуть вниз не прибегая к лишнем запосам в базу.

Надеюсь кто-то меня понял...
Буду чрезвычайно благодарен.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
то-есть

$sql = "UPDATE price SET num=(num-1) WHERE id='$n'";
mysql_query($sql);

$sql = "SELECT * from price WHERE num<'$num' ORDER by num DESC LIMIT 1";
$result = mysql_query($sql);
$data = mysql_fetch_array($result);
$sql = "UPDATE price SET num=(num+1) WHERE id='$data[id]'";
mysql_query($sql);

верно?
или можно проще?
Спасибо
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Да, по очереди, если ты это имеешь ввиду (1,3,4...)
по ним идёт сортировка
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
блин,
фигня получается :(
 

tony2001

TeaM PHPClub
если у тебя идут именно подряд, то получается, что тебе сначала надо проапдейтить запись, которую меняешь (например, опустить ее вниз).
потом поднять ту, у которой теперь такой же num, но id не равен id твоей записи.
 
Сверху