|
|
|
| Мне нужно уменьшить на 1 поле position для всех записей, у которых поле position больше заданной переменной. Этот запрос почемуто не работает,,,
$query = "UPDATE tx_photogallery_photos_inf SET position=position-1 WHERE position>'$cur_position'";
|
Заранее спасибо | |
|
|
|
|
|
|
|
для: !!Yurchik!!
(04.04.2005 в 21:20)
| | А как проявляется его не работа? Вроде всё правильно... | |
|
|
|
|
|
|
|
для: cheops
(05.04.2005 в 00:24)
| | А, теперь все понятно... Проблема была не в этом.
Ситуация такая: я выбираю из таблицы несколько записей (их может быть порядка 10-и - 20-и), после этого в цикле проверяю каждую запись на наличие определенного параметра и удаляю ее, если этот параметр не установлен. При этом мне нужно уменьшить поле position для тех записей, у которых оно больше, чем у заданой записи, чтобы записи "подвинулись".
Но тут одна проблема: я например удаляю подряд 3-ю и 4-ую запись. При удалении 3-ей у 4-ой position должен был стать 3, но когда я перхожу к 4-ой, у нее по прежнему это поле равно 4, я думаю потому, что эти записи выбраны оператором SELECT до цикла... Так вот, подскажите, как устранить эту проблему.
Спасибо | |
|
|
|
|
|
|
|
для: !!Yurchik!!
(05.04.2005 в 17:59)
| | А нельзя сначала удалить при помощи SQL-оператора DELETE записи у которых отсутствует этот параметр, а уж после этого провести изменения в базе данных по полю position? | |
|
|
|
|
|
|
|
для: cheops
(05.04.2005 в 22:35)
| | ну да... это пожалуй единственный варианит... спасибо | |
|
|
|