|
|
|
| Собственно сабж.
Нужно менять позицию пунктов меню, т.е. двигать их вверх и вниз.
Сделал в таблице БД поле `position`. И делаю примитивный запрос например для поднятия на одну позицию вверх:
UPDATE `menu` SET position=position-1 WHERE id='$id';
Но сами понимаете это работает не всегда, т.е. при наличии записей в БД
item | position
apple 1
banana 2
pear 3
я сделаю запрос SET position=position-1 для pear и будет
item | position
apple 1
banana 2
pear 2
Теперь порядок определяется алфавитом, т.е. в такой ситуации ничего не меняется...
Кто нибудь подскажет лучший вариант?
Спасибо | |
|
|
|
|
|
|
|
для: hammet
(10.07.2007 в 11:32)
| | Я тоже сначала не понимал как это реализовать, но потом сделал так.
$up = mysql_query("select position from pages where id='$id';");
while($pages = mysql_fetch_array($up))
{
$position_now=$pages['position'];
}
$position_up=$position_now-1;
if (!$position_up==0)
{
mysql_query("update pages set position='$position_now' where position='$position_up';");
mysql_query("update pages set position='$position_up' where id='$id';");
}
|
Надеюсь всё понятно. | |
|
|
|
|
|
|
|
для: wolfandman
(10.07.2007 в 12:47)
| | да, тут все понятно, спасибо. Но так я тоже мог написать.......
Я хочу это сделать одним запросом. | |
|
|
|