Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: php + mysql удаление записей по рассписанию
 
 автор: Filatov_Aleksey   (02.02.2011 в 00:50)   письмо автору
 
 

Здравствуйте уважаемые программисты.
Возникла проблема: необходимо удалять записи за старый год. Т.е. есть таблица (id, day, name_day), поле day - типа Date. В поле day содержатся даты каких то праздников, при наступлении нового года (например, 2012) необходимо автоматически!!! удалить записи за прошлые года (как раз в поле day указаны даты с прошлом).
Как автоматизировать выполнение запроса на удаление?

  Ответить  
 
 автор: sim5   (02.02.2011 в 01:50)   письмо автору
 
   для: Filatov_Aleksey   (02.02.2011 в 00:50)
 

Раз в год, это можно и через админ панель, например. А так, проверить дату и если 1 января, то запрос на удаление записей для полей day меньше текущей даты.

  Ответить  
 
 автор: cheops   (02.02.2011 в 11:01)   письмо автору
 
   для: Filatov_Aleksey   (02.02.2011 в 00:50)
 

Надежнее всего повесить скрипт, удаляющий записи на cron - планировщик заданий UNIX (в новых версиях MySQL выше 5.1 имеется собственный планировщик заданий).

  Ответить  
 
 автор: Filatov_Aleksey   (02.02.2011 в 18:06)   письмо автору
 
   для: cheops   (02.02.2011 в 11:01)
 

Планировщик заданий в MySQL - наиболее оптимальный вариант, т.к. размещаться будет на бесплатном хостинге. Единственный недостаток, это то что в случае перезагрузки сервера БД, планировщик автоматически отключается, т.е. в начальном состоянии он отключен (проверял SHOW VARIABLES LIKE '%event%';), соответственно включал его SET GLOBAL event_scheduler = ON;. Мне неизвестно когда хостер будет перезагружать сервер (и как часто). Как отслеживать включён ли хостинг? А в случае если он выключен, то включить и настроить?
Быть может сделать проверку при посещении сайта любым пользователем осуществлять эту проверку и включать если нужно. Как вы щитаете как можно ещё реализовать данную процедуру (включения планировщика)? Или можно как то на уровне php осуществить планировку выполнения задачи?

  Ответить  
 
 автор: cheops   (02.02.2011 в 18:12)   письмо автору
 
   для: Filatov_Aleksey   (02.02.2011 в 18:06)
 

Вообще-то события задаются при помощи оператора CREATE EVENT, а просматриваются при помощи оператора SHOW EVENTS. Они не должны стираться после перезагрузки сервера, так как размещаются в системной таблице.

PS Кроме того, версия MySQL должна быть строго больше 5.1 (это не на всех хостингах выполняется).

  Ответить  
 
 автор: Filatov_Aleksey   (02.02.2011 в 18:54)   письмо автору
 
   для: cheops   (02.02.2011 в 18:12)
 

Благодарю Вас за помощь, Вы мне дали пищу для размышления.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования