возможно ли в одном запросе к базе использовать операторы SELECT, DELETE и UPDATE если можно то как (в примере) к примеру из одной таблици надо SELECT из второй DELETE из третей UPDATE и все это в одном запросе
вот это одним запросом зделать Код (PHP): $stmt = $PDO->prepare("select * FROM `table` where `status`=? and `date_of`<?"); $stmt->execute(array(0,time())); $stmt->setFetchMode(PDO::FETCH_LAZY); while($ROW_K = $stmt->fetch()) { $stmt = $PDO->prepare("DELETE FROM `table` WHERE `id`=? and `date_off`<? and `status_works`='0'"); $stmt->execute(array($ROW_K->id,time())); $stmt = $PDO->prepare("UPDATE `table2` SET `start_ta`=`start_ta`-? WHERE `id`=?"); $stmt->execute(array(1,$ROW_K->id)); } PHP, JavaScript, SQL и другой код пишите внутри тегов Код ( (Unknown Language)): [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
Re: Использование операторов SELECT, DELETE и UPDATE в одном Dante5 почитай как через PDO сделать транзакцию, логика такая: начало транзакции запросы, сколько угодно конец транзакции как опция можно решить: применить все запросы или откатить все изменения что были сделаны в транзакции Как обычно пример в документации с несколькими запросами: https://secure.php.net/manual/ru/pdo.transactions.php и зачем внутри while делать столько execute, проще сформировать один запрос на удаление и второй на обновление вместо этого `id`=? почитай про IN в MySQL
Re: Использование операторов SELECT, DELETE и UPDATE в одном а можете пример написать за основу код выше а то пока что еще больше запутался прочитав что вы предлагаете
Re: Использование операторов SELECT, DELETE и UPDATE в одном просто дополнительно выполнить запросы стартующие и применяющие транзакцию
Re: Использование операторов SELECT, DELETE и UPDATE в одном в примере можно показать если не трудно Добавлено спустя 14 минут 9 секунд: Re: Использование операторов SELECT, DELETE и UPDATE в одном зап или не так необходимо удалить запись из table1, а после удаления обновить table2 по WHERE `id`=? гдe id будет ид удаленной записи из table1 как-то так DELETE -> UPDATE или UBDATE->DELETE без SELECT
Re: Использование операторов SELECT, DELETE и UPDATE в одном а чем тот пример подходит? как запрос UBDATE сделает изминения в записии по WHERE `id`=? если delete не даст ответ ID записи которую он удалил Добавлено спустя 3 минуты: Re: Использование операторов SELECT, DELETE и UPDATE в одном зап Необходимо внести изменение в определенную запись таблицы 2 и изменить именно ту запись ID которой удален из таблицы 1
Re: Использование операторов SELECT, DELETE и UPDATE в одном если не даст - делаешь ролбек и в базе никакие изменения не сохраняются. если всё прошло хорошо то делаешь коммит.
ну просил же если не трудно на основе кода ниже написать пример в написанных сообщениях ничего не понимаю еще больше тупить начинаю Код (PHP): $stmt = $PDO->prepare("select * FROM `table` where `status`=? and `date_of`<?"); $stmt->execute(array(0,time())); $stmt->setFetchMode(PDO::FETCH_LAZY); while($ROW_K = $stmt->fetch()) { $stmt = $PDO->prepare("DELETE FROM `table` WHERE `id`=? and `date_off`<? and `status_works`='0'"); $stmt->execute(array($ROW_K->id,time())); $stmt = $PDO->prepare("UPDATE `table2` SET `start_ta`=`start_ta`-? WHERE `id`=?"); $stmt->execute(array(1,$ROW_K->id)); }
Re: Использование операторов SELECT, DELETE и UPDATE в одном Dante5 перенести тему в раздел "сделайте за меня"? в этом разделе пытаються помочь начать думать и понимать
Re: Использование операторов SELECT, DELETE и UPDATE в одном в новички, блондинки, за меня или фриланс - куда тему перенести? Добавлено спустя 36 секунд: Re: Использование операторов SELECT, DELETE и UPDATE в одном зап а уже
легче человеку объяснить примером с использованием предоставленого кода чем тыкать в книги , документации и так дале которые разбирают в институтаха по одной теме пару дней притом что препод там все розжовует напримемерах Добавлено спустя 1 минуту 31 секунду: Re: Использование операторов SELECT, DELETE и UPDATE в одном зап вот не пойму что общего данный пример в документации имеет с моим условием чем он мне может помочь Код (PHP): $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $dbh->beginTransaction(); $dbh->exec("insert into staff (id, first, last) values (23, 'Joe', 'Bloggs')"); $dbh->exec("insert into salarychange (id, amount, changedate) values (23, 50000, NOW())"); $dbh->commit(); Добавлено спустя 36 минут 53 секунды: Re: Использование операторов SELECT, DELETE и UPDATE в одном зап Все всем спасибо действительно помогло Код (PHP): $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $dbh->beginTransaction(); $dbh->exec("insert into staff (id, first, last) values (23, 'Joe', 'Bloggs')"); $dbh->exec("insert into salarychange (id, amount, changedate) values (23, 50000, NOW())"); $dbh->commit(); поучилось у меня так Код (PHP): $stmt = $PDO->prepare("select * FROM `table` where `status`=? and `date_of`<?"); $stmt->execute(array(0,time())); $stmt->setFetchMode(PDO::FETCH_LAZY); while($ROW_K = $stmt->fetch()) { $ID = $ROW_K->id; $PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $PDO->beginTransaction(); $PDO->exec("DELETE FROM `table` WHERE `id`='".$ID."' and `date_off`<'".time()."' and `status_works`='0'"); $PDO->exec("UPDATE `table2` SET `start_ta`=`start_ta`-'1' WHERE `id`='".$ID."'"); $PDO->commit(); } вроде работает как надо удаляет и обновляет все записи согласно условию просто если бы сразу сказали заменить в Код (PHP): while($ROW_K = $stmt->fetch()) {} Код (PHP): $stmt = $PDO->prepare("DELETE FROM `table` WHERE `id`=? and `date_off`<? and `status_works`='0'"); $stmt->execute(array($ROW_K->id,time())); $stmt = $PDO->prepare("UPDATE `table2` SET `start_ta`=`start_ta`-? WHERE `id`=?"); $stmt->execute(array(1,$ROW_K->id)); понятнее бы всем было у кого возникнет подобный вопрос. но все равно спасибо . скажите такой вариант можно использовать )))) или есть че полутше
Re: Использование операторов SELECT, DELETE и UPDATE в одном Пиши конкретнее, что тебе не понятно в документации, когда пишут абстрактно, значит не хотят делать сами смотри пример №5 чтобы избавиться от while https://secure.php.net/manual/ru/pdostatement.execute.php