Удаление строк в таблице бд на автомате

vasek2

Полезный
Регистрация
8 Июн 2008
Сообщения
187
Реакции
17
Нужна инструкция по настройке автоматического удаления полей в таблице базы данных sql по расписанию. CMS Wordpress 2.9, установлен плагин трекер поисковых фраз NSx Referers (Для просмотра ссылки Войди или Зарегистрируйся ). Плагин работает корректно, собирает поисковые запросы в бд, но со временем их становится слишком много и из-за этого увеличивается нагрузка на базу данных. В результате приходится регулярно вручную чистить таблицу плагина от низкочастотных и мусорных фраз ( в таблице плагина есть значение "hits"- количество хитов, которые пришли на сайт по данному запросу- и приходится удалять все записи со значением hits <=2).
Буду несказанно благодарен за подробное разъяснение, как мне автоматизировать этот процесс- нужно задать автоматическое удаление записей в таблице плагина со значением hits<=2 - по расписанию, 1 раз в неделю.
Спасибо за ответы.
 
почти то же самое решаю запуском php-скрипта кроном, скрипт подключается к базе и чистит старые данные.
 
почти то же самое решаю запуском php-скрипта кроном, скрипт подключается к базе и чистит старые данные.
а можно подробнее? Что за скрипт и как настроить
 
а можно подробнее? Что за скрипт и как настроить

Элементарный скрипт делаете, в котором подключаетесь к базе и очищаете ненужные строки в таблице: hits<=2. И в "панели управления хостингом (сервером) - Планировщик (cron)" ставите скрипт на выполнение один раз в неделю, там всё элементарно.
 
Элементарный скрипт делаете, в котором подключаетесь к базе и очищаете ненужные строки в таблице: hits<=2. И в "панели управления хостингом (сервером) - Планировщик (cron)" ставите скрипт на выполнение один раз в неделю, там всё элементарно.
а, собственно, скрипт?- имеется ли такой в открытом доступе?
 
а, собственно, скрипт?- имеется ли такой в открытом доступе?

:) пишется самостоятельно, у меня такой:

PHP:
<?php
 
$sql_host='localhost';  /// Хост
$sql_id='';        /// Логин
$sql_pass='';    /// Пароль
$sql_db='';      /// База
 
$link = mysql_connect("$sql_host", "$sql_id", "$sql_pass") or $error.="<b>Clean MySQL. Connect Error</b>: ".mysql_error()."<br />";
$link2 = mysql_select_db("$sql_db") or $error.="<b>Clean MySQL. Select DB Error</b>:".mysql_error()."<br />";
//вписать своё название таблицы
mysql_query("DELETE FROM таблица WHERE hits <= 2 )");
$del = mysql_affected_rows();
if ($del > 1) echo 'DEL rows - '.$del.'<br>';
 
if (isset($error)) echo $error;
 
mysql_close($link);
unset($error, $del);
 
?>

нужно вписать свои значения для подключения к базе и название таблицы в запросе
 
:) пишется самостоятельно, у меня такой:

PHP:
<?php
 
$sql_host='localhost';  /// Хост
$sql_id='';        /// Логин
$sql_pass='';    /// Пароль
$sql_db='';      /// База
 
$link = mysql_connect("$sql_host", "$sql_id", "$sql_pass") or $error.="<b>Clean MySQL. Connect Error</b>: ".mysql_error()."<br />";
$link2 = mysql_select_db("$sql_db") or $error.="<b>Clean MySQL. Select DB Error</b>:".mysql_error()."<br />";
//вписать своё название таблицы
mysql_query("DELETE FROM таблица WHERE hits <= 2 )");
$del = mysql_affected_rows();
if ($del > 1) echo 'DEL rows - '.$del.'<br>';
 
if (isset($error)) echo $error;
 
mysql_close($link);
unset($error, $del);
 
?>

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

что-то не запускается...... через крон - на почту такое сообщение после запуска скрипта - /bin/sh: -c: line 0: syntax error near unexpected token `newline' , а если вручную задать в адресной строке путь к файлу- просто белая страница, а в базе ничего не удалилось... наверное, я что-то не то сделал?
 
что-то не запускается...... через крон - на почту такое сообщение после запуска скрипта - /bin/sh: -c: line 0: syntax error near unexpected token `newline' , а если вручную задать в адресной строке путь к файлу- просто белая страница, а в базе ничего не удалилось... наверное, я что-то не то сделал?

Ну вы прям вообще не шарите чтоли? сначала пробуем выполнять запрос через phpmyadmin, и там видно будет правильный или нет! Я там одну лишнюю скобку оставил, надо так:
Код:
mysql_query("DELETE FROM таблица WHERE hits <= 2");
так будет из адресной строки выполняться. файл как сохранили с расширением *.php? в кроне писать нужно так
Код:
/usr/bin/wget -O - http://вашсайт.ру/папка/скрипт.php
 
Назад
Сверху