Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Удалить записи в базе, которым старше месяца.
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Удалить записи в базе, которым старше месяца.

Страниц (1): [1]
 

1. goga5 - 19 Августа, 2012 - 21:52:19 - перейти к сообщению
Здравствуйте!

Имеем записи которые нужно хранить всего месяц, эти записи не имеют поля с датой и мы хотим это сделать для новых записей, сделали следующее:

добавили такое поле:
`date` DATE NOT NULL default '0000-00-00',

заносим дату так:
$date = date( "Y-m-d");
@mysql_query("INSERT INTO baza VALUES('', '', '', '{$date}')");

пробуем удалить так:
@mysql_query("DELETE FROM baza WHERE date > DATE_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)");
и так
@mysql_query("DELETE FROM baza WHERE date > LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 MONTH))");
и вот так
@mysql_query("DELETE FROM baza WHERE date > (NOW() - interval 30 day)");
и даже так
@mysql_query("DELETE FROM baza WHERE date > (NOW() - interval 1 month)");

но запись не удаляется за указанный период, пробовал менять > на < , в одном случае запись удаляется сразу который добавлен за секунду раньше а в другом случае ничего не происходит, запись даты через мойадмин перекидывали на 1, 2 месяца вперед для этого теста, а проверяем это всё на денвере.

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

Спасибо за помощь!
2. caballero - 19 Августа, 2012 - 23:24:19 - перейти к сообщению
поубирай собаки перед функциями
3. goga5 - 19 Августа, 2012 - 23:37:36 - перейти к сообщению
Не помогает ничего, может быть это из за денвера ?
4. caballero - 19 Августа, 2012 - 23:40:38 - перейти к сообщению
в денвере стакой же апач и mysql как и везде
5. goga5 - 19 Августа, 2012 - 23:43:04 - перейти к сообщению
но тогда не знаю что еще копать, запись добавляется но не могу удалить в этот промежуток времени...
6. caballero - 19 Августа, 2012 - 23:47:22 - перейти к сообщению
сформируй дату через strtotime
7. goga5 - 20 Августа, 2012 - 02:24:05 - перейти к сообщению
Понял в чем дело, из за пустяка мучался 2 суток! я писал выше "запись даты через мойадмин перекидывали на 1, 2 месяца вперед" - а это значить что дата пока еще не наступил, нужно было не вперед а назад передвинуть запись даты...

 

Powered by ExBB FM 1.0 RC1