wanderer
Продвинутый
Дата регистрации:
04.07.2012 12:02:14
Сообщений: 55
Хорошо, пойдем по другому пути.
Вот у вас есть день рождение.
И вы решили добавить дату вашего дня рождения на ваш сайт дабы известить всех что ваш день рождения состоится 10 марта, и вот ваш день рождения настал, и запись которая была в базе данных удалилась автоматически. как это сделать?
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Запустить через cron в соответствующий день скрипт, который удалит запись по id.
wanderer
Продвинутый
Дата регистрации:
04.07.2012 12:02:14
Сообщений: 55
Ну а если этих записей много, и они создаются динамически, любьми далекими от крон, и вообще от программирования?! Как автоматизировать?
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Эта запись должна иметь дату вывода, например, 5-е мая 2012 года. Должен быть скрипт написан, который запускается через cron. И он удаляет все записи, которые уже прошли. Скрипт должен запускаться ежедневно.
wanderer
Продвинутый
Дата регистрации:
04.07.2012 12:02:14
Сообщений: 55
я понимаю алгоритм, я не знаю как написать запрос, на удаление тех записей которые уже прошли. как написать его?
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
"DELETE FROM `table` WHERE `date` < '".time()."'" - как-то так. А в поле date() должен храниться числовой формат времени наступления события.
Скромняга
Освоившийся
Дата регистрации:
04.03.2012 01:24:28
Сообщений: 37
Добавлю к последнему комментарию, на всякий случай.
При добавлении события, коих у вас много, добавляйте дату наступления, и желательно чтобы она была у вас ровно на пару минут (или менее) до запуска крона.
Чтобы не висело прошедшее событие лишние пару часов.
Я думаю вы этого не хотите.
Ну то есть:
ДР 20.09.2013 года, значит наступить оно должно например 19 сентября в 23:59, либо 20 сентября в 23:59(если нужно чтобы событие висело этот самый памятный день).
А крон должен срабатывать в 00:01 каждого дня.
Вроде бы каждый праздник обычно празднуют с 00:00 до 00:00)
Может этот пост чем то поможет.