Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Изменение порядка следования страниц в меню CMS
 
 автор: hammet   (10.07.2007 в 11:32)   письмо автору
 
 

Собственно сабж.
Нужно менять позицию пунктов меню, т.е. двигать их вверх и вниз.
Сделал в таблице БД поле `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
Теперь порядок определяется алфавитом, т.е. в такой ситуации ничего не меняется...

Кто нибудь подскажет лучший вариант?
Спасибо

   
 
 автор: wolfandman   (10.07.2007 в 12:47)   письмо автору
 
   для: 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';");
                }


Надеюсь всё понятно.

   
 
 автор: hammet   (10.07.2007 в 13:29)   письмо автору
 
   для: wolfandman   (10.07.2007 в 12:47)
 

да, тут все понятно, спасибо. Но так я тоже мог написать.......
Я хочу это сделать одним запросом.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования