Как я могу изменить значение в базе данных php mysql после определенного периода времени? - PullRequest
0 голосов
/ 25 апреля 2019

Я работаю на сайте торговой площадки, на котором есть база данных в php mysql. На сайте я хочу отметить заказ, сделанный пользователем, как выполненный через 3 дня. Значение status любого заказа должно быть изменено на complete через 3 дня. Статус заказа в базе данных должен быть изменен автоматически через 3 дня. Есть ли способ достичь таких целей?

Есть ли способ достичь таких целей?

1 Ответ

0 голосов
/ 25 апреля 2019

Во-первых, вы хотите запрос, который будет обновляться, 3 дня или более и имеет статус, отличающийся от 'complete'

UPDATE `order`
SET `order`.`status` = 'complete'
WHERE `order`.`status` <> 'complete'
AND TIMESTAMPDIFF('DAY', `order`.`date`, now()) >= 3;

Теперь вы можете запланировать выполнение этого запроса каждый день, используя событие

CREATE EVENT IF NOT EXISTS `update_status_event`
ON SCHEDULE
    EVERY 19 DAY_HOUR
    COMMENT 'Update the status every days at 19:00'
    DO
        UPDATE `order`
        SET `order`.`status` = 'complete'
        WHERE `order`.`status` <> 'complete'
        AND TIMESTAMPDIFF('DAY', `order`.`date`, now()) >= 3;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...