|
|
|
| Подскажите, пожалуйста, делаю доску объявлений, как лучше сделать жизнь объявлений (срок размещения)
Если в базу, к примеру, записывается срок 100 дней как каждый день отчитывать по 1 дню? вообще кто делал, как правильнее сделать. Спасибо | |
|
|
|
|
|
|
|
для: dirol
(20.08.2007 в 11:55)
| | Сохраняешь сегодняшнее число в серверном формате time();
Считываешь с базы сохраненую дату скажем в переменую $saved_time;
Когда $time_passed=time()- $saved_time;
будет равняться 100 тогда соответственно в базе данных записываешь
в выделенную для этого колонку о дальнейшей недейсивительности этого рядя
или удаляешь его. | |
|
|
|
|
|
|
|
для: dirol
(20.08.2007 в 11:55)
| | Можно в начало скрипта, ответственного за добавление новой записи ( к примеру ),
добавить запрос к базе на удаление или сокрытие всех записей,
срок давности которых истек, сравнивая текущую дату с датой записи доски объявлений, минус интервал в 100 дней. | |
|
|
|
|
|
|
|
для: mehelson
(20.08.2007 в 12:20)
| | Сделал по примеру
Записываю в базу данных объявление с серверным временем time()
Считываю и дальше
$time_passed=time()- $saved_time
И честно чета не врубаюсь как дальше.
Например
if($time_passed=time()- $saved_time){
echo "работает\n";
}
Записали объявление выбрали, к примеру, 5 дней
if($time_passed=time()- $saved_time){
echo "работает";
}
Подскажите, пожалуйста | |
|
|
|
|
|
|
|
для: dirol
(20.08.2007 в 17:55)
| | У меня сделано следующим образом:
Для каждой записи вношу в БД время добавления (поле типа time) и дату удаления (поле типа ENUM, со значениями равными дням хранения: 7, 14, 30, 180, 365).
Далее в начале скрипта проверяю на "просроченность":
<?
$a = mysql_query ("SELECT * from board WHERE UNIX_TIMESTAMP() >= `дата_удаления` * 86400+`дата добавления`");
while($qwe = mysql_fetch_array($a))
{
$t = time (); // время настоящее
$ud = ($qwe['дата_удаления'] * 86400 + $qwe['time']); // время удаления
if ($t > $ud)
{
$del = mysql_query ("DELETE FROM `board` WHERE id = ".$qwe['id']." LIMIT 1");
}
}
?>
|
... | |
|
|
|
|
|
|
|
для: provodnik
(21.08.2007 в 11:11)
| | Может проще будет,
Имея в таблице поле, допустим puttime, с временем добавления записи в формате DATETIME, можно
удалить устаревшие записи с помощью запроса :
<?php
$query = "DELETE FROM table WHERE puttime < NOW() - INTERVAL '1' MONTH";
?>
|
интервал может быть разным... DAY, WEEK, YEAR | |
|
|
|
|
|
|
|
для: mehelson
(21.08.2007 в 11:45)
| | provodnik
mehelson
Спасибо вам большое!!!! | |
|
|
|