[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: поменять местами данные полей в одной таблице
Varyag666
Здравствуйте, вообщем дело такое: зделл таблицу, в ней есть поле positions, для определения очередности вывода данных, оно числове и там написано 1,2,3,4,5 и т.д. Чтобы изменить позицию вывода мне надо поменять местами данные, т.е. 2 поместить на 1, а 1 на 2.

Как это организовать можно?
Вначале мой вариант был таким: получаем данные, делаем sql запрос:

$sql2="UPDATE kategory set positions=$bottom+1 WHERE positions=$bottom";
mysql_query($sql2);
$sql="UPDATE kategory set positions=$top-1 WHERE positions=$top";
mysql_query($sql);


Но не правильно работате, т.к. после выполнения 1го пояляется 2 одинаковых поля, и второй запрос их меняет.
У меня больше вариантов нет....

Андрей



Спустя 1 час, 25 секунд (21.11.2009 - 10:42) sergeiss написал(а):
Ты изначально неправильно делаешь, логика неправильная.
Тебе надо использовать как "опорное" какое-то уникальное для каждой строки значение. Например, некоторый айди. Тогда ты в условии пишешь первый раз "where positions=$id1", второй раз "where positions=$id2"

Спустя 6 минут, 15 секунд (21.11.2009 - 10:49) Romms написал(а):
по сути надо бы было додать ИД и по нём огранизовать этот "переворот", как сказал sergeiss
А так можеш написать так:
  $sql2="UPDATE kategory set positions=99999999 WHERE positions=$bottom";
mysql_query($sql2);
$sql="UPDATE kategory set positions=$top-1 WHERE positions=$top";
mysql_query($sql);
$sql2="UPDATE kategory set positions=$bottom+1 WHERE positions=99999999;
mysql_query(
$sql2);
99999999 - можеш заменить на самое большое число(чтобы небыло повторений)
правда предложен мною способ не очень хорош...

Спустя 1 час, 1 минута, 16 секунд (21.11.2009 - 11:50) Varyag666 написал(а):
Цитата ('sergeiss')
Ты изначально неправильно делаешь, логика неправильная.
Тебе надо использовать как "опорное" какое-то уникальное для каждой строки значение. Например, некоторый айди. Тогда ты в условии пишешь первый раз "where positions=$id1", второй раз "where positions=$id2"


Благодарю, сделал именно так, я думал может какая фунция есть, чтобы сделал запрос и значения сами поменялись местами
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.