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

Форум MySQL

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

 

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

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

тема: Поменять две записи местами
 
 автор: sidPR   (07.04.2007 в 00:15)   письмо автору
 
 


$sql = "UPDATE `$table` SET `date` = NOW( ) , `namber` = '$n' WHERE  `namber` = '$u' LIMIT 1 ;
                    UPDATE `$table` SET `date` = NOW( ) , `namber` = '$u' WHERE `namber` = '$n' LIMIT 1 ;";
            mysql_query($sql);


Где $u = 1 а $n = 2 к примеру

мне просто надо у 2 рядов поменять значения друг у друга... но я незнаю ID нехочется создавать лишний раз массив.. чтоб узнать какой следом идет Id или перед...

но мой пример когда ничего толкого ниделает так как просто напросто меняет значения на тоже самое т.к. перебивает первое :)

   
 
 автор: Disable   (07.04.2007 в 00:36)   письмо автору
 
   для: sidPR   (07.04.2007 в 00:15)
 

не совсем понятно, наверно mysql_insert_id() вам поможет.
а вообще для mysql есть отдельный форум.

   
 
 автор: Trianon   (07.04.2007 в 00:49)   письмо автору
 
   для: sidPR   (07.04.2007 в 00:15)
 

Если бы клиент mysql мог выполнять несколько запросов за вызов, то сервер бы сперва сменил u на n, а затем назад n на u. В половине случаев - у одной и той же записи.
Можно обойтись одним запросом.
UPDATE table SET date = NOW(), number = $u+$n - number WHERE number IN ($u, $n)

LIMIT 1 здесь (как собственно и везде) вреден.

   
 
 автор: sidPR   (07.04.2007 в 00:53)   письмо автору
 
   для: Trianon   (07.04.2007 в 00:49)
 

Несовсем понимаю что делает этот запрос... но попробывал его спользовать толку никакого :(

   
 
 автор: sidPR   (07.04.2007 в 00:56)   письмо автору
 
   для: sidPR   (07.04.2007 в 00:53)
 

http://softtime.ru/forum/read.php?id_forum=3&id_theme=35585&page=1 - Сдесь более детально суть вопроса...

P.S. заранее спасибо всем!

   
 
 автор: sidPR   (07.04.2007 в 17:04)   письмо автору
 
   для: sidPR   (07.04.2007 в 00:56)
 


INSERT INTO `dress` (`id`, `cat_id`, `status`, `namber`) VALUES 
(10, 1, 'on', 2),
(11, 1, 'on', 1),
(12, 2, 'on', 3),


Как сделать обмен между запясями? к примеру namber у которо равен 1 поменть на 2 а у той который был 2 помнеть на 1 ... своего рода обмен....

   
 
 автор: sidPR   (08.04.2007 в 04:32)   письмо автору
 
   для: sidPR   (07.04.2007 в 17:04)
 

Помогите неужели никто ниделал подобного у себя?

   
 
 автор: Trianon   (08.04.2007 в 15:48)   письмо автору
 
   для: sidPR   (08.04.2007 в 04:32)
 

У меня работает.

   
 
 автор: sidPR   (08.04.2007 в 16:19)   письмо автору
 
   для: Trianon   (08.04.2007 в 15:48)
 


UPDATE table SET date = NOW(), number = $u+$n - number WHERE number IN ($u, $n)


Объясните тогда как он работает такой запрос... =\

   
 
 автор: Trianon   (08.04.2007 в 19:11)   письмо автору
 
   для: sidPR   (08.04.2007 в 16:19)
 

при подставленных переменных $u и $n, запрос в тех строках, поле number которых равно одной из этих переменных, вычисляет их сумму, и вычитая из суммы предыдущее значение поля, присваивает разность полю. Попутно меняется поле date на текущее время.

mysql_query($sql= "
UPDATE table 
  SET 
   date = NOW(), 
   number = $u+$n - number 
WHERE number IN ($u, $n) 
") or die("Error in$sql: ".mysql_error());
Какую из этих строк Вы не поняли?

   
 
 автор: sidPR   (09.04.2007 в 00:36)   письмо автору
 
   для: Trianon   (08.04.2007 в 19:11)
 


SQL-запрос: 

UPDATE dress SET date = NOW( ) ,
number = '1' + '2' - number WHERE `cat_id` = '1' AND number IN (

'1',
'2'


Ответ MySQL:  

#1054 - Unknown column 'number' in 'where clause' 

   
 
 автор: sidPR   (09.04.2007 в 00:43)   письмо автору
 
   для: sidPR   (09.04.2007 в 00:36)
 


Error inUPDATE dress SET date = NOW(), number = 1+2 - number WHERE `cat_id` = '1' and number IN (1, 2): Unknown column 'number' in 'where clause'

   
 
 автор: Trianon   (09.04.2007 в 01:10)   письмо автору
 
   для: sidPR   (09.04.2007 в 00:43)
 

Unknown column 'number' in 'where clause' переводится как
Неизвестный столбец number в инструкции where.
И я практически уверен, что он не врет. :)

   
 
 автор: sidPR   (09.04.2007 в 01:12)   письмо автору
 
   для: Trianon   (09.04.2007 в 01:10)
 

икренне прошу прощение за невнимательность... просто я в начале поста написал как namber в у вас правильно было :)) вот и понеслось

   
Rambler's Top100
вверх

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