powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как очистить таблицу автоматом (не подгружая страницу)?
12 сообщений из 12, страница 1 из 1
Как очистить таблицу автоматом (не подгружая страницу)?
    #38095366
sasha10100001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Написал запрос, который должен срабатывать каждый день в 23ч.59мин.
Код: php
1.
2.
$dat = date('y,n,d:H,i,s');
if($dat=="12,12,25:23,59,59"){$xx3 = mysql_query("DELETE * FROM tab_counter", $conn);}



Но запрос срабатывает когда загружается страница ровно в 23,59,59 25-ого декабря 2012
а как сделать так чтобы этот запрос срабатывал независимо от того, открыта страница или нет? Мне нужно чтобы каждый день в 23,59,59 срабатывал этот запрос автоматический, как это сделать?

Еще слышал что можно сделать так, чтобы каждая новая запись в таблицу удалялась через определенное (заданное) время.
Если это возможно, можете подсказать как это реализовать.

За ранее спасибо!
...
Рейтинг: 0 / 0
Как очистить таблицу автоматом (не подгружая страницу)?
    #38095375
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sasha10100001,

cron под Unix, Task Scheduler под Windows.
...
Рейтинг: 0 / 0
Как очистить таблицу автоматом (не подгружая страницу)?
    #38095384
sasha10100001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazile,
Спасибо за ответ, но я вообще ничего не понял.
Что это?
...
Рейтинг: 0 / 0
Как очистить таблицу автоматом (не подгружая страницу)?
    #38095387
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sasha10100001,

Плохая практика полагаться в таких случаях на крон.
Компьютер в этот момент может быть выключен, перезагружаться или еще что-нибудь.
Кроме того, удаление записей - не мгновенный процесс. Вы точно знаете как поведет себя Ваша система во время выполнения запроса? Когда увидит в таблице половину вчерашних записей или наткнется на заблокированную таблицу...

Правильнее было бы изменить архитектуру системы так, чтобы она из этой таблицы использовала только сегодняшние данные, а данные за прошлые дни удалять тем же кроном с любой периодичностью, например, раз в час (желательно с предварительной проверкой, что они там вообще есть).
Тогда независимо от перезагрузок, остановок и т.п. ненужные данные в таблице будут лежать не более одного рабочего часа.
...
Рейтинг: 0 / 0
Как очистить таблицу автоматом (не подгружая страницу)?
    #38095389
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sasha10100001bazile,
Спасибо за ответ, но я вообще ничего не понял.
Что это?Это Вам были названы системные средства, задача которых периодически/по расписанию запускать какие-либо программы или выполнять еще какие-то действия.
...
Рейтинг: 0 / 0
Как очистить таблицу автоматом (не подгружая страницу)?
    #38095400
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sasha10100001,

Код: sql
1.
2.
3.
4.
CREATE DEFINER=`develop`@`%` 
EVENT `ev_clear_tab_counter` 
ON SCHEDULE EVERY 1 DAY STARTS '2012-12-25 23:59:59' 
ON COMPLETION NOT PRESERVE ENABLE DO DELETE * FROM tab_counter;


выполните этот запрос и радуйтесь жизни
...
Рейтинг: 0 / 0
Как очистить таблицу автоматом (не подгружая страницу)?
    #38095417
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ренат
Код: sql
1.
CREATE EVENT

Так тоже можно, но к вышеперечисленным мною оговоркам добавляется еще требование версии MySQL не ниже 5.1.6. А многие еще на 5.0.* работают.
...
Рейтинг: 0 / 0
Как очистить таблицу автоматом (не подгружая страницу)?
    #38095452
sasha10100001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мой сайт с базой данных лежат на хостинге, я думаю у них новые версии MySQL и они следят за их обновлениями.
Сегодня протестирую, завтра надеюсь будет положительный результат.
Кстати, этот код можно записать в файл (php) который не доступен пользователям?
...
Рейтинг: 0 / 0
Как очистить таблицу автоматом (не подгружая страницу)?
    #38095465
sasha10100001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если я правильно понял запрос должен выглядеть так:
Код: plsql
1.
2.
3.
4.
5.
include('bd.php'); 

$xx3 = mysql_query("CREATE DEFINER=`develop`@`%` EVENT `ev_clear_tab_counter` ON SCHEDULE EVERY 1 DAY STARTS '2012-12-27 23:59:59' ON COMPLETION NOT PRESERVE ENABLE DO DELETE * FROM tab_counter", $conn);

 mysql_close($conn);
...
Рейтинг: 0 / 0
Как очистить таблицу автоматом (не подгружая страницу)?
    #38095490
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sasha10100001Мой сайт с базой данных лежат на хостинге, я думаю у них новые версии MySQL и они следят за их обновлениями.Проверить версию MySQL несложно:
Код: sql
1.
SELECT VERSION()
...
Рейтинг: 0 / 0
Как очистить таблицу автоматом (не подгружая страницу)?
    #38095684
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sasha10100001Если я правильно понял запрос должен выглядеть так:
Код: plsql
1.
2.
3.
4.
5.
include('bd.php'); 

$xx3 = mysql_query("CREATE DEFINER=`develop`@`%` EVENT `ev_clear_tab_counter` ON SCHEDULE EVERY 1 DAY STARTS '2012-12-27 23:59:59' ON COMPLETION NOT PRESERVE ENABLE DO DELETE * FROM tab_counter", $conn);

 mysql_close($conn);


Да, только запустить его надо 1 раз не больше) Иначе ошибка будет
...
Рейтинг: 0 / 0
Как очистить таблицу автоматом (не подгружая страницу)?
    #38097313
sasha10100001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ренат,
Версия MySql: 5.1.62-log
Код вставил в подвал главной страницы.
Не сработало, данные в таблице, целые и невредимые.
Думаю решить эту задачу таким способом:
Код: php
1.
2.
3.
4.
$data = date('y,n,d');
$x1 = mysql_query("SELECT * FROM tab_counter WHERE date = '$data'", $conn);
//обработка результата
$x2 = mysql_query("DELETE FROM tab_counter WHERE date != '$data'", $conn);


Или не стоит нагружать страницу лишним запросом к БД?

А возможно ли, задать название колонки таблицы через пробел чтобы в запросе это поле читалось не как два отдельных а как одно? То есть: поле с именем "tab_counter" переименовать в "tab counter" следовательно такой запрос:
Код: php
1.
"DELETE FROM tab counter WHERE date != '$data'"

будет работать или нет?
Я поэкспериментировал и вроде не работает, хотя и не выдает ошибку, или я делаю что-то не правильно?
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как очистить таблицу автоматом (не подгружая страницу)?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]