[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Объединение запросов UPDATE
Svist
Доброго времени суток !!!!!
Вот пишу плаген к одной CMS (не важно) необходимо сделать изменения в 2 разных таблицах вот делаю 2 запроса :
первый:
UPDATE `user` SET pole=pole+1, pole_x=pole_x+1 WHERE id_u=1

Второй:
UPDATE `mediakontent` SET col=col+1 WHERE id_m=19

Все путем работает .. а как этти запросы Объединить в один ????
Php mY Admin выдал такой код (линк [Создать PHP-код]):
$sql = ' UPDATE `user` SET pole=pole+1, pole_x=pole_x+1 WHERE id_u=1; # Затронутые ряды:1'
. ' # Затронутые ряды:1'
. ' UPDATE `mediakontent` SET col=col+1 WHERE id_m=19 ; # Затронутые ряды:1'
. ' ';

И этот код не работает ... не какие изменения в БД не происходят ..... Почему ? Как правильно составить запрос ? Ведь по одиночке то они выполняються ....



Спустя 55 минут, 25 секунд (18.04.2010 - 12:31) vagrand написал(а):
Потому что тут не один запрос, а 2-а разделенные символом ";".
Функция mysql_query() не умеет выполнять сразу несколько запросегов.

Спустя 8 минут, 21 секунда (18.04.2010 - 12:40) Svist написал(а):
vagrand
Тоесть выйти из положения и уменьшить количество запрсов тут не как не получиться ?? user posted image

Ладно..... Такой вопрос :
в запросе pole, и pole_x являються Числовыми:
UPDATE `user` SET pole=pole+1, pole_x=pole_x+1 WHERE id_u=1

А к примеру если там еще есть поле txt текст... возможно ли сложение текста ... т.е. мне надо из переменной дописать в конец поля.. ну кпримеру :
UPDATE `user` SET pole=pole+1, pole_x=pole_x+1, txt=txt+$my_text WHERE id_u=1

Но по такому принципу не хочет работать ..... Такое можно ли как нибуть провернуть ?

За ранее спасибо !

Спустя 1 час, 9 минут, 32 секунды (18.04.2010 - 13:49) Self написал(а):
UPDATE `user` SET `pole` = `pole` + 1, `pole_x` = `pole_x`+1, 
`txt` = CONCAT(`txt`+ ' мой текст') WHERE `id_u` = 1;

Спустя 58 минут, 5 секунд (18.04.2010 - 14:47) vagrand написал(а):
Self

Без символа "+"

Цитата
vagrand
Тоесть выйти из положения и уменьшить количество запрсов тут не как не получиться ??


Если бы записи в таблицах users и mediakontent можно было бы связать между собой и апнуть по одному условию where, то тогда можно было бы апдейт мультитабличный написать, а так вроде как не выйдет.

Спустя 5 минут, 18 секунд (18.04.2010 - 14:52) Svist написал(а):
Self,vagrand
Спасибо !!!! Попробую !!!!

З.Ы.

vagrand
А можешь написать простой Пример мультитабличного апдейта (не для моих таблиц а вообще) ??? самый простой какой нибуть с общим условием .. ....

Спустя 4 минуты, 9 секунд (18.04.2010 - 14:57) Self написал(а):
Да запятая там
`txt` = CONCAT(`txt`, ' мой текст')

описался. rolleyes.gif

Спустя 30 минут, 58 секунд (18.04.2010 - 15:28) vagrand написал(а):
Цитата
А можешь написать простой Пример мультитабличного апдейта (не для моих таблиц а вообще) ??? самый простой какой нибуть с общим условием .. ....


UPDATE table1, table2 SET table1.some_field = 'some_value', table2.some_field = 'some_value'
WHERE table1.id = table2.tabe1_id and table1.some_field = 'some_value';

Спустя 15 минут, 44 секунды (18.04.2010 - 15:43) Svist написал(а):
vagrand
СПАСИБО !!!!!
Чесно говоря не думал что можно объединять в UPDATE так же как и в SELECT.... biggrin.gif

Спустя 19 минут, 56 секунд (18.04.2010 - 16:03) vagrand написал(а):
В апдейте и подзапросы можно делать. Кури мануал
Быстрый ответ:

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