• 17-05-2017, 19:43:21
    #1
    Merhaba, aşağıdaki şekilde bir sorgu oluşturuyorum.

    Veri tabanında tarih 2017-05-17 19:50:00 bu şekilde şuan ki zaman ise 2017-05-17 19:40:00 bu şekilde olmasına rağmen if sorgusu true dönüş ekrana "Güncellendi" olarak yazılıyor. Ancak işlem henüz gerçekleşmeden.
    Sorgu zamanı geldiğinde çalışıyor ancak dediğim gibi henüz işlem olmamışken true dönmesi nedendir?

    <?php
    include ("../baglanti.php");
    
    $zaman = date("Y-m-d H:i:s");
    $guncelle = mysql_query("update gorev set gorev_durum=2 where gorev_tarih <= '$zaman'");
    
    if ($guncelle)
    	{
    	echo 'Güncellendi';
    	}
      else
    	{
    	echo 'olmadı';
    	}
    
    ?>
  • 17-05-2017, 19:49:29
    #2
    Peki güncelleme işlemini yapıyor mu? Yani gorev_tarih alanı güncelleniyor mu?

    echo "update gorev set gorev_durum=2 where gorev_tarih <= '$zaman'"
    Yukarıdaki kodu çalıştırın ve çıktıyı buraya ekleyin hocam bi daha bakalım.
  • 17-05-2017, 19:55:53
    #3
    Görev_durum alanını güncellemek istiyorum. Belirlediğim zaman geldiğinde evet güncelleme işlemini yapıyor. ancak tarih gelmeden de güncellendi yazıyor.

    sizin verdiğiniz şekilde ekran çıktısı

    update gorev set gorev_durum=2 where gorev_tarih <= '2017-05-17 19:57:08'
    Zalmoxis adlı üyeden alıntı: mesajı görüntüle
    Peki güncelleme işlemini yapıyor mu? Yani gorev_tarih alanı güncelleniyor mu?

    echo "update gorev set gorev_durum=2 where gorev_tarih <= '$zaman'"
    Yukarıdaki kodu çalıştırın ve çıktıyı buraya ekleyin hocam bi daha bakalım.
  • 18-05-2017, 09:32:23
    #4
    Tarihi veritabanından mı almak istiyorsun? Senın su an aldıgın where kosulu anlık tarih ve saat olmakta. Koşulunda anlık olarak alınıyor, veritabanından alınan bir koşul yok ki kayıt yaptırılsın
  • 18-05-2017, 10:11:51
    #5
    tarihlerde timestamp kullanmalısın tarih koşullandırmada timestamp en güvenilir yöntem. Sorun şuanki tarih biçiminle ilgili bence.
  • 18-05-2017, 10:28:52
    #6
    Timezone ile ilgili olduğunu düşünüyorum. Çalıştırdığınız kodda önce zaman çıktısını alın karşılatırın derim.

    SM-N920C cihazımdan Tapatalk kullanılarak gönderildi
  • 18-05-2017, 17:33:34
    #7
    cleaner80 adlı üyeden alıntı: mesajı görüntüle
    tarihlerde timestamp kullanmalısın tarih koşullandırmada timestamp en güvenilir yöntem. Sorun şuanki tarih biçiminle ilgili bence.
    Hocam timestamp denedim ancak belirttiğim tarihten önce güncelleme işlemini yapıyordu. o yüzden datetime olarak ayarlamıştım şuan

    melihozyurt adlı üyeden alıntı: mesajı görüntüle
    Tarihi veritabanından mı almak istiyorsun? Senın su an aldıgın where kosulu anlık tarih ve saat olmakta. Koşulunda anlık olarak alınıyor, veritabanından alınan bir koşul yok ki kayıt yaptırılsın
    Hocam yapmak istediğim kayıt oluşturulurken belirlediğim tarih ve saat var.
    Benim istediğim o tarih geldiğinde bir update işlemi olması. böylece o kaydın süresinin bittiğini belirlemek.

    Böyle bi işlem için önereceğiniz farklı bişey varsa denemek isterim.

    Mesela tarih ve saati strtotime fonksiyonundan geçirip veritabanına warchar olarak ekletip şuanki zamanı da aynı şekilde çevirip sorguyu o şekilde yapmak gibi
  • 18-05-2017, 18:16:54
    #8
    Ankon adlı üyeden alıntı: mesajı görüntüle
    Hocam timestamp denedim ancak belirttiğim tarihten önce güncelleme işlemini yapıyordu. o yüzden datetime olarak ayarlamıştım şuan



    Hocam yapmak istediğim kayıt oluşturulurken belirlediğim tarih ve saat var.
    Benim istediğim o tarih geldiğinde bir update işlemi olması. böylece o kaydın süresinin bittiğini belirlemek.

    Böyle bi işlem için önereceğiniz farklı bişey varsa denemek isterim.

    Mesela tarih ve saati strtotime fonksiyonundan geçirip veritabanına warchar olarak ekletip şuanki zamanı da aynı şekilde çevirip sorguyu o şekilde yapmak gibi
    Hocam benim anlamadığım bir nokta var aşağıdaki seçeneklerden hangisi doğru belirtir misiniz?

    1) İşlem gerçekleşiyor ve güncellendi yazıyor.
    2) İşlem gerçekleşmiyor ve güncellendi yazıyor.

    Hangisi burdaki problem tam olarak yazar mısınız.
  • 18-05-2017, 18:47:13
    #9
    Zalmoxis adlı üyeden alıntı: mesajı görüntüle
    Hocam benim anlamadığım bir nokta var aşağıdaki seçeneklerden hangisi doğru belirtir misiniz?

    1) İşlem gerçekleşiyor ve güncellendi yazıyor.
    2) İşlem gerçekleşmiyor ve güncellendi yazıyor.

    Hangisi burdaki problem tam olarak yazar mısınız.
    Hocam veritabanındaki kayıt tarihi ile şuanki tarih arasında 5 dakika fark var diyelim. Sorguyu çalıştırıyorum. Güncellendi yazıyor ancak veritabanında baktığımda işlem gerçekleşmemiş. Ancak 5 dakika sonra tekrar denediğimde yine aynı şekilde güncellendi yazıyor bu defa işlem olmuş.

    Benim istediğim işlem olduktan sonra güncellendi yazısının gelmesi. Çünkü o aşamada farklı bi işlem daha olacak o yüzden.