[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: автоматическое удаление через 30 60 90 дней
MillerLight
Основная идея такая: перед тем как отправить запись в БД можно было выбрать срок хранения. А там по истечению которого автоматически удалялась.

Или может все таки удобнее прописать код на странице где уже все выводится перед кодом цикла например?

Например:

("DELETE FROM table WHERE date > 60 DAY"); (хотя бы 60 smile.gif )
только это не работает sad.gif

Все уже перепробовал.....



Спустя 19 минут, 12 секунд (21.08.2009 - 16:23) Gabriel написал(а):

Спустя 1 час, 51 минута, 55 секунд (21.08.2009 - 18:15) MillerLight написал(а):
Я уже даже согласен все сделать без выбора 30 60 90 дней sad.gif
Работала бы хотя бы с 60 только rolleyes.gif
Ну вот что то собрал wink.gif
только не пашет))))

Взял для теста 1 день и менял даты...
Исправьте пожалуйста huh.gif
PHP
<?php 
$result1 
= mysql_query ("DELETE * FROM apartment1 WHERE data>now()- INTERVAL 1 DAY");

Спустя 14 часов, 37 минут, 37 секунд (22.08.2009 - 08:53) MillerLight написал(а):
Сообщаю радостную новость biggrin.gif

Получилось когда немного исправил:

PHP
mysql_query("delete from apartment1 where date < NOW() - INTERVAL '1' DAY");


Спасибо Gabriel за отклик rolleyes.gif

Спустя 4 часа, 5 минут, 53 секунды (22.08.2009 - 12:59) MillerLight написал(а):
В общем немного доработал своё wink.gif

ДЛЯ ТЕХ КТО НЕ ЗНАЕТ И ИЩЕТ cool.gif

если хотите чтобы данные с БД удалялись в заданную дату в таблице сделайте поле end_date

PHP
mysql_query("delete from name_table  where and_date = NOW()");


поменять только name_table на свое название таблицы.
когда заданная дата сравнаяется с настоящей действие произойдет rolleyes.gif

Спустя 1 день, 3 часа, 18 минут, 6 секунд (23.08.2009 - 16:17) Fratyr написал(а):
По моему для вызова такого запроса на удаление, нужно делать cron smile.gif
Иначе можно проспать дату smile.gif

Спустя 7 часов, 14 минут, 39 секунд (23.08.2009 - 23:31) MillerLight написал(а):
Согласен wink.gif Только я им не умею пользоваться... не приходилось smile.gif

Может в пару строк объяснишь?

Спустя 1 год, 2 месяца, 11 дней, 41 минута, 31 секунда (5.11.2010 - 01:13) MillerLight написал(а):
Если кому то надо могу скинуть код падающего меню с выбором сколько месяцев хранить статью в базе))) Написал его до 1 ГОДА!))

Вчера сидел творил ))) biggrin.gif

Спустя 7 минут, 48 секунд (5.11.2010 - 01:21) ИНСИ написал(а):
Цитата
если хотите чтобы данные с БД удалялись в заданную дату в таблице сделайте поле end_date

smile.gif можно было и date оставить, просто название поля, надо было написать в апострафах, то есть так `date`

Просто как и везде, в интерпретаторе есть зарезервированные слова, такие как `date` и т.д.....

Цитата
Если кому то надо могу скинуть код падающего меню с выбором сколько месяцев хранить статью в базе))) Написал его до 1 ГОДА!))


интересно как ты его сделал smile.gif покажи код.

Спустя 1 минута, 42 секунды (5.11.2010 - 01:22) MillerLight написал(а):
Оцени!


Срок хранения в базе:<br>
<SELECT
NAME="del_date">

<OPTION
VALUE="<?php
$year = date("Y");
$month = date("m");
$day = date("d");
if ($month == 9 or $month == 10 or $month == 11)
{
$month_new = $month + 1;
$del_date = $year.'-'.$month_new.'-'.$day;
echo $del_date;
}
else
{
if ($month == 12) {$year_new = $year + 1;
$year_new = $year + 1;
$month_new = 1;
$del_date = $year_new.'-0'.$month_new.'-'.$day;
echo $del_date; }
else {
$month_new = $month + 1;
$del_date = $year.'-0'.$month_new.'-'.$day;
echo $del_date; }
}

?>" selected>1 месяц</OPTION>
<OPTION
VALUE="<?php
$year = date("Y");
$month = date("m");
$day = date("d");
if ($month == 9 or $month == 10)
{
$month_new = $month + 2;
$del_date = $year.'-'.$month_new.'-'.$day;
echo $del_date;
}
else
{
if ($month == 11 or $month == 12)
{
$year_new = $year + 1;
if ($month == 11){$month_new = 1; }
if ($month == 12){$month_new = 2; }
$del_date = $year_new.'-0'.$month_new.'-'.$day;
echo $del_date; }
else {
$month_new = $month + 2;
$del_date = $year.'-0'.$month_new.'-'.$day;
echo $del_date; }
}

?>">2 месяца</OPTION>
<OPTION
VALUE="<?php
$year = date("Y");
$month = date("m");
$day = date("d");
if ($month == 7 or $month == 8 or $month == 9)
{
$month_new = $month + 3;
$del_date = $year.'-'.$month_new.'-'.$day;
echo $del_date;
}
else
{
if ($month == 10 or $month == 11 or $month == 12)
{
$year_new = $year + 1;
if ($month == 10){$month_new = 1; }
if ($month == 11){$month_new = 2; }
if ($month == 12){$month_new = 3; }
$del_date = $year_new.'-0'.$month_new.'-'.$day;
echo $del_date; }
else {
$month_new = $month + 3;
$del_date = $year.'-0'.$month_new.'-'.$day;
echo $del_date; }
}

?>">3 месяца</OPTION>
<OPTION
VALUE="<?php
$year = date("Y");
$month = date("m");
$day = date("d");
if ($month == 6 or $month == 7 or $month == 8)
{
$month_new = $month + 4;
$del_date = $year.'-'.$month_new.'-'.$day;
echo $del_date;
}
else
{
if ($month == 9 or $month == 10 or $month == 11 or $month == 12)
{
$year_new = $year + 1;
if ($month == 9){$month_new = 1; }
if ($month == 10){$month_new = 2; }
if ($month == 11){$month_new = 3; }
if ($month == 12){$month_new = 4; }
$del_date = $year_new.'-0'.$month_new.'-'.$day;
echo $del_date; }
else {
$month_new = $month + 4;
$del_date = $year.'-0'.$month_new.'-'.$day;
echo $del_date; }
}

?>">4 месяца</OPTION>
<OPTION
VALUE="<?php
$year = date("Y");
$month = date("m");
$day = date("d");
if ($month == 5 or $month == 6 or $month == 7)
{
$month_new = $month + 5;
$del_date = $year.'-'.$month_new.'-'.$day;
echo $del_date;
}
else
{
if ($month == 8 or $month == 9 or $month == 10 or $month == 11 or $month == 12)
{
$year_new = $year + 1;
if ($month == 8){$month_new = 1; }
if ($month == 9){$month_new = 2; }
if ($month == 10){$month_new = 3; }
if ($month == 11){$month_new = 4; }
if ($month == 12){$month_new = 5; }
$del_date = $year_new.'-0'.$month_new.'-'.$day;
echo $del_date; }
else {
$month_new = $month + 5;
$del_date = $year.'-0'.$month_new.'-'.$day;
echo $del_date; }
}

?>">5 месяцев</OPTION>
<OPTION
VALUE="<?php
$year = date("Y");
$month = date("m");
$day = date("d");
if ($month == 4 or $month == 5 or $month == 6)
{
$month_new = $month + 6;
$del_date = $year.'-'.$month_new.'-'.$day;
echo $del_date;
}
else
{
if ($month == 7 or $month == 8 or $month == 9 or $month == 10 or $month == 11 or $month == 12)
{
$year_new = $year + 1;
if ($month == 7){$month_new = 1; }
if ($month == 8){$month_new = 2; }
if ($month == 9){$month_new = 3; }
if ($month == 10){$month_new = 4; }
if ($month == 11){$month_new = 5; }
if ($month == 12){$month_new = 6; }
$del_date = $year_new.'-0'.$month_new.'-'.$day;
echo $del_date; }
else {
$month_new = $month + 6;
$del_date = $year.'-0'.$month_new.'-'.$day;
echo $del_date; }
}

?>">6 месяцев</OPTION>
<OPTION
VALUE="<?php
$year = date("Y");
$month = date("m");
$day = date("d");
if ($month == 3 or $month == 4 or $month == 5)
{
$month_new = $month + 7;
$del_date = $year.'-'.$month_new.'-'.$day;
echo $del_date;
}
else
{
if ($month == 6 or $month == 7 or $month == 8 or $month == 9 or $month == 10 or $month == 11 or $month == 12)
{
$year_new = $year + 1;
if ($month == 6){$month_new = 1; }
if ($month == 7){$month_new = 2; }
if ($month == 8){$month_new = 3; }
if ($month == 9){$month_new = 4; }
if ($month == 10){$month_new = 5; }
if ($month == 11){$month_new = 6; }
if ($month == 12){$month_new = 7; }
$del_date = $year_new.'-0'.$month_new.'-'.$day;
echo $del_date; }
else {
$month_new = $month + 7;
$del_date = $year.'-0'.$month_new.'-'.$day;
echo $del_date; }
}

?>">7 месяцев</OPTION>
<OPTION
VALUE="<?php
$year = date("Y");
$month = date("m");
$day = date("d");
if ($month == 2 or $month == 3 or $month == 4)
{
$month_new = $month + 8;
$del_date = $year.'-'.$month_new.'-'.$day;
echo $del_date;
}
else
{
if ($month == 5 or $month == 6 or $month == 7 or $month == 8 or $month == 9 or $month == 10 or $month == 11 or $month == 12)
{
$year_new = $year + 1;
if ($month == 5){$month_new = 1; }
if ($month == 6){$month_new = 2; }
if ($month == 7){$month_new = 3; }
if ($month == 8){$month_new = 4; }
if ($month == 9){$month_new = 5; }
if ($month == 10){$month_new = 6; }
if ($month == 11){$month_new = 7; }
if ($month == 12){$month_new = 8; }
$del_date = $year_new.'-0'.$month_new.'-'.$day;
echo $del_date; }
else {
$month_new = $month + 8;
$del_date = $year.'-0'.$month_new.'-'.$day;
echo $del_date; }
}

?>">8 месяцев</OPTION>
<OPTION
VALUE="<?php
$year = date("Y");
$month = date("m");
$day = date("d");
if ($month == 1 or $month == 2 or $month == 3)
{
$month_new = $month + 9;
$del_date = $year.'-'.$month_new.'-'.$day;
echo $del_date;
}
else
{
if ($month == 4 or $month == 5 or $month == 6 or $month == 7 or $month == 8 or $month == 9 or $month == 10 or $month == 11 or $month == 12)
{
$year_new = $year + 1;
if ($month == 4){$month_new = 1; }
if ($month == 5){$month_new = 2; }
if ($month == 6){$month_new = 3; }
if ($month == 7){$month_new = 4; }
if ($month == 8){$month_new = 5; }
if ($month == 9){$month_new = 6; }
if ($month == 10){$month_new = 7; }
if ($month == 11){$month_new = 8; }
if ($month == 12){$month_new = 9; }
$del_date = $year_new.'-0'.$month_new.'-'.$day;
echo $del_date; }
else {
$month_new = $month + 9;
$del_date = $year.'-0'.$month_new.'-'.$day;
echo $del_date; }
}

?>">9 месяцев</OPTION>
<OPTION
VALUE="<?php
$year = date("Y");
$month = date("m");
$day = date("d");
if ($month == 1 or $month == 2)
{
$month_new = $month + 10;
$del_date = $year.'-'.$month_new.'-'.$day;
echo $del_date;
}
else
{
if ($month == 3 or $month == 4 or $month == 5 or $month == 6 or $month == 7 or $month == 8 or $month == 9 or $month == 10 or $month == 11 or $month == 12)
{
$year_new = $year + 1;
if ($month == 3){$month_new = 1; }
if ($month == 4){$month_new = 2; }
if ($month == 5){$month_new = 3; }
if ($month == 6){$month_new = 4; }
if ($month == 7){$month_new = 5; }
if ($month == 8){$month_new = 6; }
if ($month == 9){$month_new = 7; }
if ($month == 10){$month_new = 8; }
if ($month == 11){$month_new = 9; }
if ($month == 12){$month_new = 10; }
$del_date = $year_new.'-0'.$month_new.'-'.$day;
echo $del_date; }
else {
$month_new = $month + 10;
$del_date = $year.'-0'.$month_new.'-'.$day;
echo $del_date; }
}

?>">10 месяцев</OPTION>
<OPTION
VALUE="<?php
$year = date("Y");
$month = date("m");
$day = date("d");
if ($month == 1)
{
$month_new = $month + 11;
$del_date = $year.'-'.$month_new.'-'.$day;
echo $del_date;
}
else
{
if ($month == 2 or $month == 3 or $month == 4 or $month == 5 or $month == 6 or $month == 7 or $month == 8 or $month == 9 or $month == 10 or $month == 11 or $month == 12)
{
$year_new = $year + 1;
if ($month == 2){$month_new = 1; }
if ($month == 3){$month_new = 2; }
if ($month == 4){$month_new = 3; }
if ($month == 5){$month_new = 4; }
if ($month == 6){$month_new = 5; }
if ($month == 7){$month_new = 6; }
if ($month == 8){$month_new = 7; }
if ($month == 9){$month_new = 8; }
if ($month == 10){$month_new = 9; }
if ($month == 11){$month_new = 10; }
if ($month == 12){$month_new = 11; }
$del_date = $year_new.'-0'.$month_new.'-'.$day;
echo $del_date; }
else {
$month_new = $month + 11;
$del_date = $year.'-0'.$month_new.'-'.$day;
echo $del_date; }
}

?>">11 месяцев</OPTION>
<OPTION
VALUE="<?php
$year = date("Y");
$month = date("m");
$day = date("d");

$year_new = $year + 1;
$del_date = $year_new.'-'.$month.'-'.$day;
echo $del_date;

?>">1 ГОД</OPTION>
</SELECT>



Спустя 35 минут, 48 секунд (5.11.2010 - 01:58) ИНСИ написал(а):
MillerLight все можно сделать, куда проще чем ты сделал.

Допустим, в форме есть:

Хранить месяцев:
<select name="date">
<? for($i = 1; $i <= 12; ++$i) { ?>
<option value="<?=$i?>"><?=$i?></option>
<? } ?>
</select>


а в файле, который обрабатывает, запрос сделать таким:
        mysql_query("
INSERT
INTO `apartment1`(`date`)
VALUES(NOW() + INTERVAL
{$_POST['date']} MONTH)
"
);


ОБРАТИ ВНИМАНИЕ! ЭТО ПРИМЕР!

Спустя 2 минуты, 43 секунды (5.11.2010 - 02:01) MillerLight написал(а):
Ну зачем ты это сделал biggrin.gif biggrin.gif biggrin.gif

Спустя 29 минут, 30 секунд (5.11.2010 - 02:30) ИНСИ написал(а):
MillerLight ничего .... мне тоже обидно бывает, когда я тружусь над кодом пару часов, делаю такой "шедевр", а тут мне показывают этот же "шедевр" но куда лучше и оптимальнее smile.gif

Спустя 7 часов, 29 минут, 34 секунды (5.11.2010 - 10:00) twin написал(а):
Цитата
Хранить месяцев:
<select name="date">
<? for($i = 1; $i <= 12; ++$i) { ?>
  <option value="<?=$i?>"><?=$i?></option>
    <? } ?>
</select>
нафига... не меняется же ничего. Статично прописать лень?

Спустя 2 часа, 49 минут, 55 секунд (5.11.2010 - 12:50) ИНСИ написал(а):
Цитата
нафига... не меняется же ничего.

как не меняется? я лично проверил, все работает. Выводится список, где от 1 до 12...
Цитата
Статично прописать лень?

нет, просто так ведь меньше кода и результат тот же

Спустя 6 часов, 45 минут, 50 секунд (5.11.2010 - 19:36) twin написал(а):
Не все то золото, что блестит.
Кода меньше, но он PHP. А достаточно HTML. Ведь в селекте ничего не меняется, всегда будет
Цитата
список, где от 1 до 12...
Зачем тогда гонять препроцессор?

Спустя 5 часов, 32 минуты, 7 секунд (6.11.2010 - 01:08) ИНСИ написал(а):
Цитата
Зачем тогда гонять препроцессор?

согласен на 100%....

А если допустим надо с 1950 года, вывести все, там уже по твоему мнению можно использовать php? просто блин, нереально будет все вручную писать

Спустя 11 часов, 21 минута, 26 секунд (6.11.2010 - 12:29) ИНСИ написал(а):
Цитата
Тебе еще учиться, учиться и еще раз учиться...

ну, тебе тоже еще многому надо учиться... учиться.... и еще раз учиться...... тому, что это лишь хитрость, а не знания.

Об этом я знаю, ничего нового для меня это не открыло. Мне просто интересно, неужели 1 лишний цикл, будет нагрузкой на проц.

Спустя 8 дней, 23 часа, 25 минут (15.11.2010 - 11:54) MillerLight написал(а):
Цитата (welbox2 @ 4.11.2010 - 22:58)
MillerLight все можно сделать, куда проще чем ты сделал.

Допустим, в форме есть:

Хранить месяцев:
<select name="date">
<? for($i = 1; $i <= 12; ++$i) { ?>
<option value="<?=$i?>"><?=$i?></option>
<? } ?>
</select>


а в файле, который обрабатывает, запрос сделать таким:
        mysql_query("
INSERT
INTO `apartment1`(`date`)
VALUES(NOW() + INTERVAL
{$_POST['date']} MONTH)
"
);


ОБРАТИ ВНИМАНИЕ! ЭТО ПРИМЕР!

А как сделать чтоб выводились года. Сверху вниз 2010 до 1970???
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.