PHP скрипт для автоматической очистки таблиц в Базе Данных MySQL

  • 46 Ответов
  • 836 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

Здравствуйте, подскажите пожалуйста php скрипт, который можно будет запускать через Cron для автоматической очистки таблиц в Базе Данных MySQL.

Главное, чтоб рабочий был.

*

Оффлайн Septdir

  • *******
  • 2096
  • [+]106 / [-]0
  • JoomlaZen
    • Просмотр профиля
    • Игорь «Septdir» Бердичевский
Нет ну честно наверное же сегодня начали заниматься разработкой и должны понимать, что без нормальных водный данных вы нормального ответа не получите.
Ваш вопрос звучит так, "подскажите средство для мытья". Разумеется ответом будет вопрос "Для мытья чего?"
Пиши что чистим когда чистим. Составляйте логику.
Вариантов много. Можно с cron можно без него.
Если с cron то можно и MySQL - xxxxx использовать, можно набросать простой компонент и в контролере написать нужную функцию с использованием api.
Можно и без cron запихав все нужное в плагин.
Все зависит от конкретной задачи и логики ее исполнения.
Что же до готовых решений, если такие есть, то это не разумно подобные скрипты пишуться индивидуально иначе либо получиться криво, либо он будет очень тяжелый.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты: Сайт | skype:septdir | Telegram | VK | Facebook | Twiter | Все контакты

*

Оффлайн flyingspook

что прям всех таблиц  ;D тоды удалить бд сразу и без крона, по существу можно накидать любой скрипт с указанием нужных параметров, и привязать к крону
Код
"DELETE FROM `table_name`"
« Последнее редактирование: 16.12.2016, 16:08:21 от flyingspook »

*

Оффлайн Septdir

  • *******
  • 2096
  • [+]106 / [-]0
  • JoomlaZen
    • Просмотр профиля
    • Игорь «Septdir» Бердичевский
что прям всех таблиц  ;D тоды удалить бд сразу и без крона, по существу можно накидать любой скрипт с указанием нужных параметров, и привязать к крону
Можно базу по крону удалять. Например типа так. Проверяем есть ли база. Если есть обращаемся к внешему файлу, если в нем стоит удалить, то базу сносим. Для чего такая пакость думаю многие догадались.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты: Сайт | skype:septdir | Telegram | VK | Facebook | Twiter | Все контакты

Я установил модуль счетчика, а он собирает статистику посещений в таблице __jvcounter_logs.

Я хочу каждый день обнулять статистику в 24 часа очищая все данные из __jvcounter_logs.

Как сделать?

Вот так правильно:

Код
<?php
"DELETE FROM `table_name`"
?>

?

*

Оффлайн b2z

  • *****
  • 7449
  • [+]739 / [-]0
  • Разраблю понемногу
    • Просмотр профиля
    • NorrNext - расширения для Joomla! и Pagekit

Было бы классно, если бы такой плагин был в сети, но я его не нашел.

b2z подскажите пожалуйста, а то я не понимаю.

*

Оффлайн b2z

  • *****
  • 7449
  • [+]739 / [-]0
  • Разраблю понемногу
    • Просмотр профиля
    • NorrNext - расширения для Joomla! и Pagekit
Было бы классно, если бы такой плагин был в сети, но я его не нашел.
Ну так я и пишу - надо создать свой плагин. Я что-то похожее делал:
[topic=154021]

А этот плагин автоматически очищает все данные из нужной таблицы?

*

Оффлайн Septdir

  • *******
  • 2096
  • [+]106 / [-]0
  • JoomlaZen
    • Просмотр профиля
    • Игорь «Septdir» Бердичевский
Я установил модуль счетчика, а он собирает статистику посещений в таблице __jvcounter_logs.

Я хочу каждый день обнулять статистику в 24 часа очищая все данные из __jvcounter_logs.

Как сделать?
Ну так в код счетка и повесте проверку. Если дата отличается от последней записи очистить таблицу.
P.S а вообще кол-во посещений в базе. Сурово.
Ну и немного Google
http://stackoverflow.com/questions/21196613/run-a-mysql-query-as-a-cron-job

на край можно с хостовским суппортом договриться, они могут с кроном подсобить
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты: Сайт | skype:septdir | Telegram | VK | Facebook | Twiter | Все контакты

*

Оффлайн Septdir

  • *******
  • 2096
  • [+]106 / [-]0
  • JoomlaZen
    • Просмотр профиля
    • Игорь «Septdir» Бердичевский
А этот плагин автоматически очищает все данные из нужной таблицы?
Как напишите.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты: Сайт | skype:septdir | Telegram | VK | Facebook | Twiter | Все контакты

Я не знаю php, а чего сурово, много счетчиков в сети работающих с базой данных.

*

Оффлайн Septdir

  • *******
  • 2096
  • [+]106 / [-]0
  • JoomlaZen
    • Просмотр профиля
    • Игорь «Septdir» Бердичевский
Ну так я и пишу - надо создать свой плагин. Я что-то похожее делал:
[topic=154021]
Кстати а вы не знаете если ли что нибудь для проверки базы(записей) на изменения.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты: Сайт | skype:septdir | Telegram | VK | Facebook | Twiter | Все контакты

Информация счетчика должна же где то сохраняться. По этому сурового не чего нет.

*

Оффлайн b2z

  • *****
  • 7449
  • [+]739 / [-]0
  • Разраблю понемногу
    • Просмотр профиля
    • NorrNext - расширения для Joomla! и Pagekit
А этот плагин автоматически очищает все данные из нужной таблицы?
Нет. Но там легко такое можно добавить.
Я на выходных гляну плагин (если найду  ^-^), думаю, что без проблем добавлю эту операцию.

Кстати а вы не знаете если ли что нибудь для проверки базы(записей) на изменения.
Не совсем понял задачу.


*

Оффлайн Septdir

  • *******
  • 2096
  • [+]106 / [-]0
  • JoomlaZen
    • Просмотр профиля
    • Игорь «Septdir» Бердичевский
Не совсем понял задачу.
На да исполнением и логикой не думал, но задача примерно такая:
Допустим у нас есть небольшой сайтик на котором редко обновляется контент. Было бы не плохо иметь возможность отлеживать изменения в бд. Например если появилась новая запись, а владелец ничего не делал => с сайтом что-то не то. По типа проверки файлов но для базы.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты: Сайт | skype:septdir | Telegram | VK | Facebook | Twiter | Все контакты

*

Оффлайн b2z

  • *****
  • 7449
  • [+]739 / [-]0
  • Разраблю понемногу
    • Просмотр профиля
    • NorrNext - расширения для Joomla! и Pagekit
На да исполнением и логикой не думал, но задача примерно такая:
Допустим у нас есть небольшой сайтик на котором редко обновляется контент. Было бы не плохо иметь возможность отлеживать изменения в бд. Например если появилась новая запись, а владелец ничего не делал => с сайтом что-то не то. По типа проверки файлов но для базы.
Что мне приходит на ум - взять из каждой (нужной) таблицы MAX(primary_key), записать в параметры плагина в формате таблица:значение_ключа и раз в сутки сравнивать массивы.
Если массив из базы совпадает с массивов из параметров, то ок. Если нет, то выполняем какое-то действие.

b2z, было бы классно, если бы в вашем плагине, можно было разные таблицы автоматически очищать и с разным промежутком времени.

Например таблицу __jvcounter_logs мне нужно очищать каждый день в 12 вечера, а таблицу _rsfirewall_logs раз в месяц в 12 часов вечера.

Было бы хорошо, чтоб эти все параметры можно было настроить на Joomla 3.x соответственно.

И чтоб можно было много таблиц очищать сразу, а настраивать время.

*

Оффлайн b2z

  • *****
  • 7449
  • [+]739 / [-]0
  • Разраблю понемногу
    • Просмотр профиля
    • NorrNext - расширения для Joomla! и Pagekit
b2z, было бы классно, если бы в вашем плагине, можно было разные таблицы автоматически очищать и с разным промежутком времени.
Ну это уже хотелки. У меня там всё просто - раз в сутки вызывается плагин, то есть будет очищать несколько выборочных таблиц в одно время.
Своё время для своей таблицы, это надо думать, как лучше сделать. Пока нет свободного времени этим заниматься.

Но хоть так, спасибо.

*

Оффлайн Septdir

  • *******
  • 2096
  • [+]106 / [-]0
  • JoomlaZen
    • Просмотр профиля
    • Игорь «Septdir» Бердичевский
Своё время для своей таблицы, это надо думать, как лучше сделать. Пока нет свободного времени этим заниматься.
Ну самое простое что приходит на ум это Repeatable поле а потом функцию очистки запускать в цикле.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты: Сайт | skype:septdir | Telegram | VK | Facebook | Twiter | Все контакты

*

Оффлайн flyingspook

@b2z
время вызова для каждой таблицы в настройках установка вручную да и не париться

b2z подскажите. Вот есть такой скрипт:

Код
<?php
$link = mysql_connect("localhost", "пользователь_базі", "пароль");
$rv = mysql_select_db("база", $link);
$sql = "TRUNCATE TABLE `таблица`";
mysql_query($sql);
?>

Когда я его запускаю, то ошибки появляются в erro_logs:

Код
[16-Dec-2016 18:04:08 Europe/Moscow] PHP Notice:  Undefined variable: n in /home/espey/public_html/bin/drop.php on line 2
[16-Dec-2016 18:04:08 Europe/Moscow] PHP Warning:  mysql_connect() [<a href='function.mysql-connect'>function.mysql-connect</a>]: Access denied for user 'пользователь'@'localhost' (using password: YES) in /home/espey/public_html/bin/drop.php on line 2
[16-Dec-2016 18:04:08 Europe/Moscow] PHP Warning:  mysql_select_db() expects parameter 2 to be resource, boolean given in /home/espey/public_html/bin/drop.php on line 3
[16-Dec-2016 18:04:08 Europe/Moscow] PHP Warning:  mysql_query() [<a href='function.mysql-query'>function.mysql-query</a>]: Access denied for user 'root'@'localhost' (using password: NO) in /home/espey/public_html/bin/drop.php on line 5
[16-Dec-2016 18:04:08 Europe/Moscow] PHP Warning:  mysql_query() [<a href='function.mysql-query'>function.mysql-query</a>]: A link to the server could not be established in /home/espey/public_html/bin/drop.php on line 5

*

Оффлайн Septdir

  • *******
  • 2096
  • [+]106 / [-]0
  • JoomlaZen
    • Просмотр профиля
    • Игорь «Septdir» Бердичевский
b2z подскажите. Вот есть такой скрипт:
Ну а прочесть не?
Access denied for user 'пользователь'@'localhost'
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты: Сайт | skype:septdir | Telegram | VK | Facebook | Twiter | Все контакты

*

Оффлайн b2z

  • *****
  • 7449
  • [+]739 / [-]0
  • Разраблю понемногу
    • Просмотр профиля
    • NorrNext - расширения для Joomla! и Pagekit
Ну самое простое что приходит на ум это Repeatable поле а потом функцию очистки запускать в цикле.

@b2z
время вызова для каждой таблицы в настройках установка вручную да и не париться
Ну это понятно, так это ж надо ещё логики / UI в настройках надобавлять. Если будет время, сделаю. А пока что будет простой вариант  ^-^