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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Автоочистка гостевой книги

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Нужно чтобы каждые 24 часа все сообщения чистились
n1k86
Отправлено: 23 Марта, 2011 - 07:12:45
Post Id


Частый гость


Покинул форум
Сообщений всего: 160
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




В общем, хочу без крона реализовать автоочистку гостевой книги от всех сообщений... ручная автоочистка уже не в моде что называется))) Не подскажите как это можно сделать??? Гостевая сделана на PHP + MySQL.

(Отредактировано автором: 23 Марта, 2011 - 07:13:14)

 
 Top
movEAX
Отправлено: 23 Марта, 2011 - 07:28:36
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


Помог: 16 раз(а)




Ну, как как, когда кто-то заходит в гостевую, проверять на наличие устаревших данных и удалять их.
CODE (SQL):
скопировать код в буфер обмена
  1. DELETE FROM tablename WHERE DATEDIFF(NOW(), date_create) > 0


-----
армия.. самое убогое место
 
 Top
n1k86
Отправлено: 23 Марта, 2011 - 07:31:01
Post Id


Частый гость


Покинул форум
Сообщений всего: 160
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




По подробней можно, пожалуйста???
 
 Top
movEAX
Отправлено: 23 Марта, 2011 - 07:34:16
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


Помог: 16 раз(а)




n1k86 пишет:
По подробней можно, пожалуйста???

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

Описание функций для работы с датой и временем: http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html

(Отредактировано автором: 23 Марта, 2011 - 07:35:09)



-----
армия.. самое убогое место
 
 Top
n1k86
Отправлено: 23 Марта, 2011 - 07:36:29
Post Id


Частый гость


Покинул форум
Сообщений всего: 160
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Спасибо. Время созданной записи в time() да????
(Добавление)
И почему > 0 ????? Объясните, пожалуйста.
 
 Top
movEAX
Отправлено: 23 Марта, 2011 - 08:25:05
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


Помог: 16 раз(а)




DATEDIFF() returns expr1 – expr2 expressed as a value in days from one date to the other
Т.е. результатом работы функции будет разница дат в днях, а следовательно если будет возвращен 0, то сутки еще не прошли.


-----
армия.. самое убогое место
 
 Top
n1k86
Отправлено: 23 Марта, 2011 - 11:21:50
Post Id


Частый гость


Покинул форум
Сообщений всего: 160
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Понятно. Завтра тогда посмотрю, код и результат сюда покажу....)
 
 Top
n1k86
Отправлено: 24 Марта, 2011 - 13:45:00
Post Id


Частый гость


Покинул форум
Сообщений всего: 160
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Такой воспрос появился...а дату в каком формате мне заносить в бд?
 
 Top
movEAX
Отправлено: 24 Марта, 2011 - 14:23:04
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


Помог: 16 раз(а)




datetime


-----
армия.. самое убогое место
 
 Top
n1k86
Отправлено: 24 Марта, 2011 - 18:40:34
Post Id


Частый гость


Покинул форум
Сообщений всего: 160
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Ага... ну получилось что-то вот такое...
PHP:
скопировать код в буфер обмена
  1.  
  2. $allposts = mysql_result(mysql_query("SELECT COUNT(*) FROM $table"),0);
  3. if ($allposts == 0)
  4. {
  5. echo "<div class='msg'>В гостевой комнате ещё не было оставлено ни одного сообщения!</div>";
  6. }
  7. else
  8. {
  9. //Проверяем, можно ли автоматически удалить сообщения.
  10. mysql_query ("DELETE FROM $table WHERE DATEDIFF(NOW(), datetime) > 0");
  11.  
  12. //Выводим сообщения на страницу
  13. $result = mysql_query("SELECT * FROM $table ORDER BY puttime DESC LIMIT $start, $num");
  14. while ($row = mysql_fetch_array ($result))
  15. echo "<div class='msg'><div class='infomsg'><b>".$row['name']."</b> (".$row['puttime'].")<br /> <b>IP:</b> ".$row['ip']."<br /></div>".$row['msg']."<br /></div><div class='engine'>[<a href=index.php?delete=".$row['id'].">Удалить</a>] | [<a href=index.php?edit=".$row['msg'].">Изменить</a>] <br /></div>";
  16. }
  17.  


Сработает???ато сутки ждать жесть... В БД дата записывается в формате 0000-00-00 00:00:00
Можно как нибудь сделать, чтобы сам указывал, через какой промежуток времени очистку делать???
 
 Top
movEAX
Отправлено: 24 Марта, 2011 - 20:56:56
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


Помог: 16 раз(а)




Да пожалуйста,
CODE (SQL):
скопировать код в буфер обмена
  1. DELETE FROM table_name WHERE create_date < CURDATE()

Удаляет все записи предыдущего дня.


-----
армия.. самое убогое место
 
 Top
n1k86
Отправлено: 24 Марта, 2011 - 21:05:12
Post Id


Частый гость


Покинул форум
Сообщений всего: 160
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




вставил твой код, удалились все сообщения предыдущего дня...)))) Но! Всеже, то что я чуть выше написал - всё правильно??? Должно работать???
(Добавление)
У тебя есть ICQ??? Можешь кинуть в личку. Так проще крапаль будет...если тебе удобно.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB