• 29-11-2022, 23:57:36
    #1
    Merhabalar,

    Bir sistem yapıyorum fakat mantığını aklımda canlandıramadım. İlk önce müşteri ürünü satın aldığı zaman veritabanına urun_satinalimtarihi başlığına 2022-11-29 23:40:00 ve urun_bitistarihi başlığına'da 2022-12-29 23:40:00 yazdırıyorum ve işte ürümlerim sayfasında'da günümüz tarihinin ve urun_bitistarihi başlığının farkını date_diff ile hesaplattırıyorum;

                                                date_default_timezone_set('Europe/Istanbul');
                                                $todayy = date('Y-m-d H:i:s');
                                                $date1 = date_create( $sunucular_goster['urun_bitistarihi'] );
                                                $date2 = date_create( $todayy );
                                                $diff = date_diff( $date2, $date1 );
                                                $fark = $diff -> days;
                                                if($fark > 7){
                                                    echo '<td><button class="btn btn-sm" style="background-color:#55c085; color:White;">'.$fark.' Gün</button></span></td>';
                                                }else{
                                                    echo '<td><button class="btn btn-sm" style="background-color:#ff5353; color:White;">'.$fark.' Gün</button></span></td>';
                                                }
    Buraya kadar problem varsa yazın lütfen yoksa devam edelim, ben her günde belirlediğim saatler'de site_sunucular adlı veri tabanının günümüz tarihinin ve urun_bitistarihi başlığının arasındaki gün farkı hesaplansın ve bu gün farkı 1 günün altında olanları bulsun ve onun sunucu_status başlığını 0 yapsın bunu yapabilir miyiz? Ben gün farkını falan hesaplattırırım ama site_sunucular adlı veritabanını for döngüsüyle falan mı döndürmem lazım bütün veriyi kontrol edebilmem için.
  • 30-11-2022, 00:03:40
    #2
    Hocam tüm tabloyu for döngüsüne alıp işlem yapmanız lazım.
    Bunun için bir php dosyası hazırlayın onu da cronjop ile günlük 1 defa çalışacak şekilde kurun.
    İşlem tamam olur.

    Ya da daha farklı bir yol olarak da şunu yapabilirsiniz.
    Müşteri sisteme girdikçe onun satırını kontrol ettirebilirsiniz ve Sonuca göre işlem yapabilirsiniz.
  • 30-11-2022, 00:07:27
    #3
    PhYtOnX adlı üyeden alıntı: mesajı görüntüle
    Hocam tüm tabloyu for döngüsüne alıp işlem yapmanız lazım.
    Bunun için bir php dosyası hazırlayın onu da cronjop ile günlük 1 defa çalışacak şekilde kurun.
    İşlem tamam olur.

    Ya da daha farklı bir yol olarak da şunu yapabilirsiniz.
    Müşteri sisteme girdikçe onun satırını kontrol ettirebilirsiniz ve Sonuca göre işlem yapabilirsiniz.
    Son dediğiniz maalesef işime yaramıyor zira kullanıcı sisteme girmeden fiziksel olarak aktif olan bir hizmet var onu sonlandıracağım. Üst cümlede bahsettiğiniz sistemin örnek kodunu yazabilme şansınız var mı?
  • 30-11-2022, 00:08:48
    #4
    ardakarakas adlı üyeden alıntı: mesajı görüntüle
    Son dediğiniz maalesef işime yaramıyor zira kullanıcı sisteme girmeden fiziksel olarak aktif olan bir hizmet var onu sonlandıracağım. Üst cümlede bahsettiğiniz sistemin örnek kodunu yazabilme şansınız var mı?
    Örnek kodluk bir durum yok hocam yazdığınız kodu cron jop olarak çalıştırmanız lazım.
    Google de cron jop kurma diye aratın çıkar.
    Cpanel üzerinden zamanlanmış işlem kuruyorsunuz.
  • 30-11-2022, 00:09:56
    #5
    PhYtOnX adlı üyeden alıntı: mesajı görüntüle
    Örnek kodluk bir durum yok hocam yazdığınız kodu cron jop olarak çalıştırmanız lazım.
    Google de cron jop kurma diye aratın çıkar.
    Cpanel üzerinden zamanlanmış işlem kuruyorsunuz.
    Cronun ne olduğunu ve nasıl kullanıldığını biliyorum for döngüsünden bahsetmiştim yani veri tabanını döndürmeyi
  • 30-11-2022, 00:14:12
    #6
    ardakarakas adlı üyeden alıntı: mesajı görüntüle
    Cronun ne olduğunu ve nasıl kullanıldığını biliyorum for döngüsünden bahsetmiştim yani veri tabanını döndürmeyi
    Sistem hangi veritabanını kullanıyor hocam? PDO mu? Ona göre örnek bişi yazayım. Ama tam tablo adı be sütun adları olmadan yarım olur tamamlamanız gerekir.
  • 30-11-2022, 00:16:29
    #7
    PhYtOnX adlı üyeden alıntı: mesajı görüntüle
    Sistem hangi veritabanını kullanıyor hocam? PDO mu? Ona göre örnek bişi yazayım. Ama tam tablo adı be sütun adları olmadan yarım olur tamamlamanız gerekir.
    PDO

    ANA TABLO ADI: site_sunucular

    Siz bana sadece örnek veriyorum site_sunucular tablosunda bulunanları $degisken['sunucu_status']; şeklinde çektirseniz yeterli gerisi ben halledebilirim
  • 30-11-2022, 00:40:33
    #8
    ardakarakas adlı üyeden alıntı: mesajı görüntüle
    PDO

    ANA TABLO ADI: site_sunucular

    Siz bana sadece örnek veriyorum site_sunucular tablosunda bulunanları $degisken['sunucu_status']; şeklinde çektirseniz yeterli gerisi ben halledebilirim
    $query = $db->query("SELECT * FROM site_sunucular", PDO::FETCH_ASSOC);
    if ( $query->rowCount() ){
         foreach( $query as $row ){
              print_r($row)
         }
    }
    Bu şekilde tüm tabloyu çekebilirsiniz hocam. Sizin üstte olan kodunuzu print olan kısıma alarak işlem yapabilirsiniz. O da şu şekilde oluyor.

    $query = $db->query("SELECT * FROM site_sunucular", PDO::FETCH_ASSOC);
    if ( $query->rowCount() ){
         foreach( $query as $row ){
              $todayy = date('Y-m-d H:i:s');
              $date1 = date_create( $sunucular_goster['urun_bitistarihi'] );
              $date2 = date_create( $todayy );
              $diff = date_diff( $date2, $date1 );
              $fark = $diff -> days;
              if($fark >= 1){
                   $query = $db->prepare("UPDATE site_sunucular SET sunucu_status = :status WHERE sunucu_id = :id");
                   $update = $query->execute(array("status" =>0,"id" => $row['sunucu_id']));
              }
         }
    }
    burada id adlarını filan tahmini yazdım.
  • 30-11-2022, 01:01:16
    #9
    PhYtOnX adlı üyeden alıntı: mesajı görüntüle
    $query = $db->query("SELECT * FROM site_sunucular", PDO::FETCH_ASSOC);
    if ( $query->rowCount() ){
         foreach( $query as $row ){
              print_r($row)
         }
    }
    Bu şekilde tüm tabloyu çekebilirsiniz hocam. Sizin üstte olan kodunuzu print olan kısıma alarak işlem yapabilirsiniz. O da şu şekilde oluyor.

    $query = $db->query("SELECT * FROM site_sunucular", PDO::FETCH_ASSOC);
    if ( $query->rowCount() ){
         foreach( $query as $row ){
              $todayy = date('Y-m-d H:i:s');
              $date1 = date_create( $sunucular_goster['urun_bitistarihi'] );
              $date2 = date_create( $todayy );
              $diff = date_diff( $date2, $date1 );
              $fark = $diff -> days;
              if($fark >= 1){
                   $query = $db->prepare("UPDATE site_sunucular SET sunucu_status = :status WHERE sunucu_id = :id");
                   $update = $query->execute(array("status" =>0,"id" => $row['sunucu_id']));
              }
         }
    }
    burada id adlarını filan tahmini yazdım.