• 22-10-2013, 23:22:44
    #1
    Arkadaşlar veritabanında maçlar tablom var. Örneğin 1 maç saat 20:00'da başlıyor.

    20:00'dan itibaren şuanki zamana göre saat 20:00'da başlayan maçı 130 dakika sonra otamatikmen veritabanından statusunu 2 yaptırmam gerekiyor.

    Yardımcı olurmusunuz ?

    Bir kod yazdım fakat sorun çıkartıyor sanırım.

    $saatler = mysql_query("SELECT * FROM maclar where status = '1'");
    		
    while($q = mysql_fetch_object($saatler)){
    		
    $baslangic       =strtotime($q->mac_saati);
    $bitis               = strtotime(date('H:i'));
    $fark       	       = abs($baslangic-$bitis);
    $toplantiSure   = $fark/60;
    
    if($toplantiSure > 130){
    				
    			
    mysql_query("UPDATE maclar SET status = '2' WHERE mid = '".$q->mid."'");
    
    			}
  • 23-10-2013, 05:18:59
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    maç saatini direk 20:00 değilde 01-10-2013 20:00:00 gibi tutarsan kolayca yapabilirsin bu işlemi.

    mac saatini mktime() kullanarak unix formatına çevirip veritabanına girmek büyük avantaj sağlar.

    daha sonra şu şekilde hesaplarsın:

    $macsaati = 12412341235 (unix time örnek diyelim ki 01-10-2013 20:00:00 tekabül ediyor)
    $yuzotuzdakika = 60*130 (130 dakikanın unix cinsinden değeri)
    $gelecekzaman = $macsaati+$yuzotuzdakika
    $suankizaman = time()

    if($suankizaman>$gelecekzaman)
    maç statusunu 2 yap...
  • 23-10-2013, 07:02:04
    #3
    Üyeliği durduruldu
    php kullanmayın, gerek yok (bknz : mysql scheduled events)