• 07-04-2016, 18:43:43
    #1
    Merhaba

    Bir sistemde şu şekilde yapı kurmam gerekti;

    baslama-bitis-deger

    Şimdi başlama ve bitiş timestamp olarak tarihi kaydediyor. Yapmak istediğim iki inputtan tarih seçilecek ve ben seçilen tarihlere göre deger verisini toplatacağım.

    Örn; ben 01.04.2016 ile 30.04.2016 tarihleri arasına bu veriyi girdik. Ben inputlardan bu iki tarihi seçersem sıkıntı olmuyor. Ama tarihi mesela 02.04.2016 ile 30.04.2016 yada 01.04.2016 ile 29.04.2016 seçersem veri gelmiyor.

    Select işlemi esnasında birçok şeyi denedim ama çözemedim. Yardımcı olan arkadaşlara şimdiden teşekkürler.


    Sent from my iPhone using Tapatalk
  • 09-04-2016, 20:10:50
    #2
    Güncell


    Sent from my iPhone using Tapatalk
  • 10-04-2016, 02:00:38
    #3
    ByAkman adlı üyeden alıntı: mesajı görüntüle
    Güncell


    Sent from my iPhone using Tapatalk
    inputlardan aldığın değeri veritabanındaki gibi stilize etmen gerek.
    yyyy-aa-gg olarak. tablodaki gibi olmalı.
    bunu explode ile yapabilirsin.
    daha sonra strtotime ile dönüştürüp where şartına eklemelisin.
    koşulunda şöyle olmalı
    büyük eşit ve küçük eşit.
    örn:

    if ($deger >= baslama && $deger <= $bitis){
    // işlemler
    }
  • 10-04-2016, 02:05:49
    #4
    ercanakca adlı üyeden alıntı: mesajı görüntüle
    inputlardan aldığın değeri veritabanındaki gibi stilize etmen gerek.
    yyyy-aa-gg olarak. tablodaki gibi olmalı.
    bunu explode ile yapabilirsin.
    daha sonra strtotime ile dönüştürüp where şartına eklemelisin.
    koşulunda şöyle olmalı
    büyük eşit ve küçük eşit.
    örn:

    if ($deger >= baslama && $deger <= $bitis){
    // işlemler
    }
    Post ile gelen değeri timestap a çeviriyorum o kısımlarda sorun yok hocam. Sıkıntı şurda başlıyor örn;

    Şu şekilde verim var
    baslama - 01.04.2016
    Bitis - 30.04.2016 değerinde timestamp olarak veritanına kayıtlı.

    Sql sorgumda büyük ve küçük eşiti kullandığımda eğerki inputtan bitiş olarak 29.04.2016 seçersem veriyi getirmiyor. Aynı şey başlama değeri içinde geçerli
  • 10-04-2016, 02:23:26
    #5
    ByAkman adlı üyeden alıntı: mesajı görüntüle
    Post ile gelen değeri timestap a çeviriyorum o kısımlarda sorun yok hocam. Sıkıntı şurda başlıyor örn;

    Şu şekilde verim var
    baslama - 01.04.2016
    Bitis - 30.04.2016 değerinde timestamp olarak veritanına kayıtlı.

    Sql sorgumda büyük ve küçük eşiti kullandığımda eğerki inputtan bitiş olarak 29.04.2016 seçersem veriyi getirmiyor. Aynı şey başlama değeri içinde geçerli
    karşılaştırmayı yazdığınız kodu paylaşır mısınız?
  • 10-04-2016, 15:17:58
    #6
    ercanakca adlı üyeden alıntı: mesajı görüntüle
    karşılaştırmayı yazdığınız kodu paylaşır mısınız?


    ercanakca adlı üyeden alıntı: mesajı görüntüle
    karşılaştırmayı yazdığınız kodu paylaşır mısınız?
    şimdi öncelikle postla gelen verileri ;

    $baslangic = strtotime($_POST["start"]);
    $bitis = strtotime($_POST["bitis"]);
    şeklinde alıyorum. Daha sonra oluşturduğum sorgum şu şekilde;

    SELECT SUM(deger) AS hedef FROM hedefler WHERE baslangic >= '$baslangic' AND bitis <= '$bitis'
    şeklinde. Fakat bu sorguda tam performansı alamıyorum. Örn:

    veri olarak
    01.04.2016 başlangıç
    30.04.2016 bitiş
    50 değer şeklinde kaydımız var. Post olarak 02.04.2016 - 30.04.2016 değerini gönderince getirmiyor verileri.

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 15:17:58 -->-> Daha önceki mesaj 14:12:59 --

    Sorunumu şu şekilde çözdüm;

    SELECT SUM(deger) as hedef FROM hedefler WHERE baslama <= '$bitis' AND bitis >= '$baslangic'

    Sent from my iPhone using Tapatalk