Всеки ден в 00:00 часа да се изтриват записите от таблица

sianbg_s

Registered
Как да направя така, че всеки ден в 00:00 часа всички записи от таблицата online да се изтриват ?
 
Нагласяш 1 скрипт да трие и чрез cron job го стартираш всеки ден в 00:00, ако нямаш cron jobs на хостинга, ползвай този сайт -> http://www.getcron.com/index_EN.html
 
не мога да разбера защо винаги когато става дума за скрипт които се изпълнява през определено време гледате да е с CRON JOB
 
JimBeam каза:
не мога да разбера защо винаги когато става дума за скрипт които се изпълнява през определено време гледате да е с CRON JOB
Защото е единствения начин скрипта да се изпълни точно в зададеното време без да се влияе от други фактори. Всички останали начини са свързани с посещение в страницата което при сайт с голяма активност няма да се усети, но при сайтове с по-малко посещения може да има забавяне с минути, дори часове.
Иначе друг начин е в 1 файл да се пази timestamp на времето в полунощ и при посещение ако текущото е по-голямо изпълнява каквото ще изпълнява и добавя 86400 към това във файла.
Иначе направо 1 Cron:
0 0 * * * /usr/bin/curl http://domain.com/cron/fail.php или:
0 0 * * * php /pat/do/faila.php което на някой хостове може и да не работи
 
Дам така пак става да се изпълнява в дадено време с активност та идеята ми е да се вкара в config.php файла и нали е свързан config.php към всички файлове и където и да влезнеш даденото поле което си посочил ще се изчисти в посочения час , и така няма да има според мен голямо разминаване с времето а и да има нали като някой потребител влезне ще се изчисти . но дали ще стане вие ще кажете :)
 
JimBeam каза:
не мога да разбера защо винаги когато става дума за скрипт които се изпълнява през определено време гледате да е с CRON JOB

Ми... да видим ето това творение на Ou7:

if($chas == "00:00:00") {
mysql_query("DELETE FROM online");
}

Тука всичко е много хубаво... ама ако нямаш крон който да стартира даденият файл който да речем ти си го написал и последно си го тествал в
14:20:05. По-този начин файла ще си седи с този час. Трябва да го стартираш "физически" така да кажем... иначе без крон файл може всяка вечер в 23:59:59 да отваряш файла брез браузера или да го стартираш през терминала за да успее да си направи проверката :)


А сега ако можеш да ми кажеш, че ще успееш точно в 23:59:59 да го лоад-неш за да може да ти изпълни скрипта... Евала :)
 
dhtodorov каза:
JimBeam каза:
не мога да разбера защо винаги когато става дума за скрипт които се изпълнява през определено време гледате да е с CRON JOB

Ми... да видим ето това творение на Ou7:

if($chas == "00:00:00") {
mysql_query("DELETE FROM online");
}

Тука всичко е много хубаво... ама ако нямаш крон който да стартира даденият файл който да речем ти си го написал и последно си го тествал в
14:20:05. По-този начин файла ще си седи с този час. Трябва да го стартираш "физически" така да кажем... иначе без крон файл може всяка вечер в 23:59:59 да отваряш файла брез браузера или да го стартираш през терминала за да успее да си направи проверката :)


А сега ако можеш да ми кажеш, че ще успееш точно в 23:59:59 да го лоад-неш за да може да ти изпълни скрипта... Евала :)

То тогава половината PHP ще се обезсмисли. Нали за това е PHP да прави нещата автоматични. Не при всички случаи PHP-то може да помогне, понякой път трябва да се побутне отзад за да тръгне. В случая побутването ще стане единствено с CronJob ако иска да става автоматично иначе не виждам начин...
 
CronJob и във файла имаш само - mysql_query("DELETE FROM online");
Разбира се и часта за свръзване с MYSQL.

Относно въпроса защо ползваме CRON, ще ти дам един пример:
Имам билинк система само с 2 000 000 записа, при която в определен момент е необходимо да се направят определени преизчисления. За да стане това тя трябва да се сравни с втора базаданни с около 2000 записа. Това прави около 4000000000 операции. Ако го сложа да се прави в конфиг файла, колко време мислиш че ще отнеме на първият потребител отворил страницата и на колко трябва да настроя timeouta на PHP, каква е вероятността потребителя да затвори браузара докато чака и каква е вероятността самият браузър да не даде някаква грешка?
 

Горе