Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.01.2016, 17:40   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
Вопрос Задать значения в двух таблицах

Доброго времени суток!
Хочу сразу одним запросом в двух таблицах выставить в поле значение 0.
В отладчике AppServ
PHP код:
UPDATE users SET status 0;UPDATE group_users SET status 
Срабатывает, а в PHP нет.
PHP код:
$query "UPDATE users SET status = 0;UPDATE group_users SET status = 0";
$result mysql_query($query) or die ("ERROR: ".mysql_error()); 
Или отладчик по другому работает?
Shouldercannon вне форума Ответить с цитированием
Старый 02.01.2016, 17:42   #2
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

это 2 запроса, то что строка одна никак никому ничего не доказывает
come-on вне форума Ответить с цитированием
Старый 02.01.2016, 18:45   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Или отладчик по другому работает?
По другому. Скорее всего умеет запросы друг от друга отделять.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.01.2016, 19:01   #4
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

PHP код:
$query "UPDATE users, group_users SET users.status = 0, group_users.status = 0 WHERE users.uid = '".$_POST['usrid']."'";
$result mysql_query($query) or die ("ERROR: ".mysql_error()); 
В users статус устанавливается указанному пользователю (uid = 1), в group_users статус выставляется всем. Что-то упустил
Shouldercannon вне форума Ответить с цитированием
Старый 02.01.2016, 19:40   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Про транзакции читайте если хотите два запроса "в одном".
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 02.01.2016, 19:52   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

MYSQL умеет одним update обновлять несколько таблиц. Только их нужно правильно связать. А в приведенном запросе на group_users нет ни каких ограничений. Поэтому и все записи обновляются. Я бы этой возможностью не пользовался. Как-то рискованно. В рамках одной транзакции два update более привычно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.01.2016, 20:01   #7
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

В любом случае ID у пользователя в обеих таблицах всегда одинаковый.
Shouldercannon вне форума Ответить с цитированием
Старый 02.01.2016, 20:03   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

ну, а чего для group_users этого не указываешь во where?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.01.2016, 20:30   #9
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
ну, а чего для group_users этого не указываешь во where?
точно
PHP код:
$query "UPDATE users, group_users SET users.status = 0, group_users.status = 0 WHERE users.uid = '".$_POST['usrid']."' and group_users.uid = '".$_POST['usrid']."'";
$result mysql_query($query) or die ("ERROR: ".mysql_error()); 
Shouldercannon вне форума Ответить с цитированием
Старый 03.04.2016, 21:44   #10
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Столкнулся с проблемой.
Если сделать так
PHP код:
$query "UPDATE users, group_users SET users.status = 0, group_users.status = 0 WHERE users.uid = '".$_POST['usrid']."' and group_users.uid = '".$_POST['usrid']."'"
и в какой-то одной из таблиц users или group_users ничего нет, то запрос не проходит.
Можно это проблему решить?
Shouldercannon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос изменения количества строк в таблицах на двух листах книги одновременно timda81 Microsoft Office Excel 5 30.06.2012 19:58
Сравнение записей в двух таблицах aimk0 БД в Delphi 2 11.01.2011 23:11
Сравнение и замена значений в двух таблицах Excel shalinoleg Microsoft Office Excel 2 10.06.2010 09:53
Поиск несоответствий в двух таблицах Stevan Microsoft Office Excel 3 03.02.2010 11:35
Множественное перемещение в двух таблицах Arteom БД в Delphi 7 16.07.2008 16:59