@DmitrijP

Как поменять значение в mysql через какое-то время?

Здрасьте :)
У меня есть функция на сайте для отметки что предмет из mysql базы был найден, при нажатии на кнопку я меняю колонку с изначальным значением "непроверен" на "проверен", но как сделать что бы это значение скажем через месяц автоматически вернулось на "не проверен"?
Простите если вопрос простой, но это очень поможет в изучении.
Ответы лучше кодом, дабы было удобнее разобраться.
Заранее спасибо!
  • Вопрос задан
  • 167 просмотров
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Никак не делать.

База данных - это не твой дневник, в котором ты привык двойку на тройку исправлять ластиком.
В БД ничего через месяц подправлять не надо.
Надо просто сделать колонку, в которой стоит дата смены статуса.

И в запросе на получение статуса просто учитывать дату. Если проверен и прошло меньше месяца - то проверен.
Иначе - не проверен.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
flapflapjack
@flapflapjack
на треть я прав
update tablename set tablename.valuename = true where tablename.date_created +  INTERVAL 1 month < NOW()


кроном, или при любом вызове любого скрипта
Ответ написан
Комментировать
@renaay
К сожалению, средствами языка PHP такую штукенцию врят-ли можно сделать без сторонних библиотек (или костылей), но если сильно хочется, есть ReactPHP.

Потому, самый лояльный и распространённый вариант решения данной задачи выглядит так:
- Пишем скрипт который бегает в базу, берет дату и проверяет её
- Берем любой планировщик задач, например cron, говорим ему, мол запускай пожалуйста этот скрипт раз в N часов/месяцев/дней.

В результате скрипт будет запускаться раз в (например, день), выбирать все записи которые были созданы 30 дней назад и будет проставлять им необходимый статус.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы