öncelikle php ve mysql ile olacağından bahsedeceğim sistemin çalışabilmesi için kullanıcı tarafından servera bir istek gönderilmesi gerektiğini bilmen gerekir.
en basit haliyle anlatmaya çalışacağım, bunun için gerekli olan mysql tablosunu ve php kodlarınıda en basit halde tutacağım ki senin ve konuya ileride bakabilecek kişiler üzerinde kod mantığını kavrayıp kendine göre geliştirir değiştirir uygular... amacımız mantığı kavratmak uygulamanıza kod yazmak değil...
mysql veritabanınızda kullandığınız database içerisine bu iş için bir tane tablo yaratmalısınız...
//mysql tablo kodu...
CREATE TABLE `crontable` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`zaman` VARCHAR( 10 ) NOT NULL
) TYPE = MYISAM ;
<?php
mysql_connect("localhost","root","");
//mysql'e bağlanıyoruz...
mysql_select_db("db");
// bendeki veritabanı ismi db olduğundan db seçimini yaptım..
$dongucalismasikligi = "24";
//oluşturacağımız dongunun saat cinsinden calisma aralığını belirliyoruz...
// tablomuzdaki kaydi çekiyoruz...
$sql = "SELECT id,zaman FROM crontable LIMIT 1";
$sorgu = mysql_query($sql);
$db = mysql_fetch_array($sorgu);
// hafızaya aldık...
$sure = $dongucalismasikligi * 60 * 60;
// bu dongunun çalışma sıklığının saniye cinsinden değeri...
$now = time();
//dosyanın kullanıcı tarafından istenildiği tarihsaat
$sonuc = ($now - $db['zaman']) / $sure;
if ($sonuc >= 1) {
/*
Bu alanda sonuç 1 veya 1 den büyük çıkarsa çalışacak olanlar
*/
/*
Buraya kadar.....
*/
$sql_update = "UPDATE `crontable` SET `zaman` = '$now' WHERE `id` =$db[id] LIMIT 1";
mysql_query($sql_update);
// yukarıda çalıştığı zamanı tabloya kaydettik..
}else {
/*
sorgunun calismayacağı zaman
yapılacaklar genelde hiçbirşey
*/
}
?>
yukarıda dilim döndüğünce anlatmaya çalıştım umarım faydalı olur. Bu arada kodlamada hata mesajlarına yer vermedim orasını sizler yapabilirsiniz...
Ayrıca veritabanına bir start time yani başlangıç kaydı yapmanız gerekiyor...