Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > WordPress и другие CMS
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.08.2016, 17:19   #1
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию Удаление записей старше одного месяца для dle

Доброго времен суток, в админпанели dle есть мастер оптимизации в котором есть функция удаления старых записей, но дело в том что мне нужно автоматизировать этот процесс, нужно чтобы статьи старше одного месяца автоматически удалялись, есть тут знатоки dle? как лучше всего это сделать? может кто то уже делал такое, заранее благодарю за помощь
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 25.08.2016, 14:24   #2
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

PHP код:
$db mysql_connect ("localhost","root","");
mysql_select_db("baza",$db);
$result mysql_query ("DELETE FROM dle_post WHERE date = '2015-11-15 01:11:57'"); 
таким образом удаляю новость конкретно с указанной датой, а как указать в условии больше месяца?
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 25.08.2016, 15:04   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
а как указать в условии больше месяца?
больше месяца от чего? От текущей даты? время учитывать?
и что значит - месяц? ровно 30 дней назад?
если сегодня 31 марта - то минус месяц - это до какой даты удалять?

а вообще, когда Вы определитесь с тем, что Вам надо, то все ответы на ваши вопросы есть тут
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.08.2016, 09:13   #4
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
больше месяца от чего? От текущей даты? время учитывать?
и что значит - месяц? ровно 30 дней назад?
если сегодня 31 марта - то минус месяц - это до какой даты удалять?
можно 30 дней, да, от текущей даты, мне бы какой нибудь пример получить, и еще надо удалить фотографии с хоста которые были в удаляемых статьях, вот тут чувствую задача намного усложняется
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 26.08.2016, 10:09   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
можно 30 дней, да, от текущей даты, мне бы какой нибудь пример получить
надеюсь, что поле `date` в таблице DLE_POST имеет тип даты(или timestamp)?!

а запросы очень простые.
например,

Код:
SELECT * FROM dle_post 
        WHERE TO_DAYS(CURDATE()) - TO_DAYS(`date`) > 30;
или

Код:
SELECT * FROM dle_post 
where `date` < DATE_SUB(CURDATE(), INTERVAL 30 DAY);
select * - это чтобы посмотреть, что выбирается, проверить, то, что надо или нет.
для удаления заменить на DELETE

Цитата:
и еще надо удалить фотографии с хоста которые были в удаляемых статьях, вот тут чувствую задача намного усложняется
согласен. усложняется.
а Вы знаете, где хранятся фотки к статьям? И как они связаны с самой статьёй, к которой они относятся?
Всё решить можно.

p.s. кстати, а Вы уверены, что нужно удалять всё, что старше месяца?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.08.2016, 14:42   #6
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
надеюсь, что поле `date` в таблице DLE_POST имеет тип даты(или timestamp)?!
поле date имеет тип datetime

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
p.s. кстати, а Вы уверены, что нужно удалять всё, что старше месяца?!
ну да уверен, а что? насчет фоток еще нужно разобраться, сначала попробую просто удалить сами статьи, большое спасибо за примеры, буду пробовать
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 26.08.2016, 15:02   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
поле date имеет тип datetime
хорошо.

Цитата:
ну да уверен, а что?
да нет, ничего. просто удивительно, как то.
вон, у нас скоро разговоры и переписку полгода хранить будут,
а Вы через 1 месяц статьи удаляете...

Цитата:
сначала попробую просто удалить сами статьи, большое спасибо за примеры, буду пробовать
удачи.

если что - обращайтесь, чем смогу - помогу!

кстати, если у Вас все картинки собраны в одной папке и ссылки на картинки хранятся только внутри новости(внутри статьи)
в виде <img src="/uploads/images/kartinka.jpg">
тогда, если Вы удалите сами статьи, то картинки останутся "безхозяйственными"..
может быть, сначала надо распарсить статьи, найти там ссылки на картинки и сначала картинки грохнуть,
а уже потом статьи убирать?

Последний раз редактировалось Serge_Bliznykov; 26.08.2016 в 15:08.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.08.2016, 15:13   #8
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

получился вот такой код
PHP код:
$result mysql_query ("SELECT * FROM dle_post WHERE TO_DAYS(CURDATE()) - TO_DAYS(`date`) > 250");
$myrow mysql_fetch_array($result);
do
{
echo 
$myrow["date"]."<br>";
echo 
$myrow["title"]."<br>";
}
while (
$myrow mysql_fetch_array($result)); 
вроде рабочий и выводит то что надо, а для удаления просто заменю на DELETE, теперь буду разбираться с фотками
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 26.08.2016, 16:49   #9
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

Мдаа, я извиняюсь, говорят нельзя просто удалять напрямую из базы dle, в движке есть код мастера оптимизации, я хотел бы передать в этот код определенную дату и запускать этот скрипт через крон, код я вставлю сюда, может кто нибудь смог бы разобраться в нем, просто нужно удалять не только статью а еще и все что связано с ней, комменты, тэги, фотки итд. этот код все это делает, вот только вряд ли я сам смогу в нем разобраться
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 26.08.2016, 16:53   #10
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

Прикрепляю файл clean.php
Вложения
Тип файла: rar clean.rar (2.8 Кб, 8 просмотров)
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
На DLE исчезла функция редактирования записей shy_plumbum WordPress и другие CMS 0 08.08.2015 09:00
Удаление записей Eugene_Stoun БД в Delphi 4 10.04.2015 16:28
Удаление записей Arsgun БД в Delphi 7 09.07.2007 11:56