• 04-12-2019, 10:10:01
    #1
    herkese iyi forumlar arkadaşlar,
    veritabanımdaki date sütunundan 2 tarih aralığındaki verileri listelemek istiyorum ancak bir sütunda daha sorgu yapmam gerek, örnek kodum aşağıdaki gibi ancak sonuç alamıyorum

    $query2 = $db->query("SELECT * FROM ad_siparis_urunler WHERE (date BETWEEN '$ekleme_tarih_1' and '$ekleme_tarih_2') and siparis_urun_adi = '$siparis_urun_adi'")->fetch(PDO::FETCH_ASSOC);
    aslında yapmak istediğim şu; ad_siparis_urunler tablosundan "Siyah Mevsimlik Kap" yazan tüm sütunları seçtiğim tarih aralığında satış sayısını toplayabilmek, her bir sütun 1 satış demek, ve çıktıyıda "Siyah Mevsimlik Kap - 12" olarak almak istiyorum, yani şu şu tarihler arasında 12 adet siyah mevsimlik kap satılmış, dolaylı yollardan ve tek tarih seçerek sonuca ulaşabiliyorum ancak 2tarih aralığında takıldım kaldım, yardımcı olmak isteyen arkadaşların cevaplarını bekliyorum.
  • 04-12-2019, 11:18:47
    #2
    $query2 = $db->query("SELECT * FROM ad_siparis_urunler WHERE siparis_urun_adi = '$siparis_urun_adi' and date BETWEEN '$ekleme_tarih_1' and '$ekleme_tarih_2'")->fetch(PDO::FETCH_ASSOC);
    bu şekilde dener misiniz?
  • 04-12-2019, 11:21:17
    #3
    ByMezarkabul adlı üyeden alıntı: mesajı görüntüle
    herkese iyi forumlar arkadaşlar,
    veritabanımdaki date sütunundan 2 tarih aralığındaki verileri listelemek istiyorum ancak bir sütunda daha sorgu yapmam gerek, örnek kodum aşağıdaki gibi ancak sonuç alamıyorum

    $query2 = $db->query("SELECT * FROM ad_siparis_urunler WHERE (date BETWEEN '$ekleme_tarih_1' and '$ekleme_tarih_2') and siparis_urun_adi = '$siparis_urun_adi'")->fetch(PDO::FETCH_ASSOC);
    aslında yapmak istediğim şu; ad_siparis_urunler tablosundan "Siyah Mevsimlik Kap" yazan tüm sütunları seçtiğim tarih aralığında satış sayısını toplayabilmek, her bir sütun 1 satış demek, ve çıktıyıda "Siyah Mevsimlik Kap - 12" olarak almak istiyorum, yani şu şu tarihler arasında 12 adet siyah mevsimlik kap satılmış, dolaylı yollardan ve tek tarih seçerek sonuca ulaşabiliyorum ancak 2tarih aralığında takıldım kaldım, yardımcı olmak isteyen arkadaşların cevaplarını bekliyorum.
    Merhaba, sql sorgun doğru yalnız $ekleme_tarih_1 ve $ekleme_tarih_2 değişkenlerine tarihler hangi formatta geliyor ona bakmak gerekir.
    Mesela veri tabanında tarih alanları 04.12.2019 diye görünüyor. Sen sorgunda ki tarihi yani $ekleme_tarih_1="2019-12-04"; olarak atarsan sorgu çalışacaktır. (Tarih formatı önemli Y-m-d veya Y.m.d)
    Ama $ekleme_tarih_1="04.12.2019"; olarak getirirsen çalışmaz en azından kendi tablomda test ettim çalışmadı.
  • 04-12-2019, 11:27:36
    #4
    salimsevindik adlı üyeden alıntı: mesajı görüntüle
    Merhaba, sql sorgun doğru yalnız $ekleme_tarih_1 ve $ekleme_tarih_2 değişkenlerine tarihler hangi formatta geliyor ona bakmak gerekir.
    Mesela veri tabanında tarih alanları 04.12.2019 diye görünüyor. Sen sorgunda ki tarihi yani $ekleme_tarih_1="2019-12-04"; olarak atarsan sorgu çalışacaktır. (Tarih formatı önemli Y-m-d veya Y.m.d)
    Ama $ekleme_tarih_1="04.12.2019"; olarak getirirsen çalışmaz en azından kendi tablomda test ettim çalışmadı.
    sütun datetime olarak "2019-11-04 17:46:00" eklenmekte, formdan tarih inputu "2019-11-04" olarak gelmekte.



    PhYtOnX adlı üyeden alıntı: mesajı görüntüle
    $query2 = $db->query("SELECT * FROM ad_siparis_urunler WHERE siparis_urun_adi = '$siparis_urun_adi' and date BETWEEN '$ekleme_tarih_1' and '$ekleme_tarih_2'")->fetch(PDO::FETCH_ASSOC);
    bu şekilde dener misiniz?
    sorunum sanırım ürünleri yazdırabilmekte değil tam sayıyı alabilmekte phpmyadminden baktığımda 6 sonuç göstermekte 01.12.2019 - 02.12.2019 tarihleri arasında ancak bana verdği sonuç 5.
  • 04-12-2019, 11:33:55
    #5
    Formdan "2019-11-04" bu şekilde geliyorsa muhtemelen 04 ü dahil etmiyor olabilir. 03 - 23.59 olarak alıyor olabilir sistem. veri alırken bir değişkenle tarih e 23.59 olarak ekleme yaparsanız çözülebilir. Fakat sadece 2. tarihe Örnek

    $ekleme_tarih_2 = $ekleme_tarih_2.' '. "23.59.59";
    şeklinde..
  • 04-12-2019, 11:45:25
    #6
    ByMezarkabul adlı üyeden alıntı: mesajı görüntüle
    sütun datetime olarak "2019-11-04 17:46:00" eklenmekte, formdan tarih inputu "2019-11-04" olarak gelmekte.





    sorunum sanırım ürünleri yazdırabilmekte değil tam sayıyı alabilmekte phpmyadminden baktığımda 6 sonuç göstermekte 01.12.2019 - 02.12.2019 tarihleri arasında ancak bana verdği sonuç 5.
    Sayılar tutmuyorsa o zaman kesinlikle saatlerden dolayı arkadaşın dediği gibi başlangıç tarihe 00:00:01 (2019-11-04 00:00:01) bitiş tarihede 23.59.59 (2019-11-04 23.59.59) eklersen sorunun çözülecektir ve doğru sayıyı verecektir.
  • 04-12-2019, 12:21:04
    #7
    PhYtOnX adlı üyeden alıntı: mesajı görüntüle
    Formdan "2019-11-04" bu şekilde geliyorsa muhtemelen 04 ü dahil etmiyor olabilir. 03 - 23.59 olarak alıyor olabilir sistem. veri alırken bir değişkenle tarih e 23.59 olarak ekleme yaparsanız çözülebilir. Fakat sadece 2. tarihe Örnek

    $ekleme_tarih_2 = $ekleme_tarih_2.' '. "23.59.59";
    şeklinde..
    salimsevindik adlı üyeden alıntı: mesajı görüntüle
    Sayılar tutmuyorsa o zaman kesinlikle saatlerden dolayı arkadaşın dediği gibi başlangıç tarihe 00:00:01 (2019-11-04 00:00:01) bitiş tarihede 23.59.59 (2019-11-04 23.59.59) eklersen sorunun çözülecektir ve doğru sayıyı verecektir.
    saatler her üründe farklı, tek tarih olarak arama yaptığımda sıkıntı yok dakikaları dikkate almadan doğru sonucu veriyor ama tarih aralığına gelince sonuçlar başarılı değil.
  • 04-12-2019, 12:31:40
    #8
    ByMezarkabul adlı üyeden alıntı: mesajı görüntüle
    saatler her üründe farklı, tek tarih olarak arama yaptığımda sıkıntı yok dakikaları dikkate almadan doğru sonucu veriyor ama tarih aralığına gelince sonuçlar başarılı değil.
    $siparis_urun_adi="BURAYADA ÜRÜN ADI GELECEK";
    $ekleme_tarih_1="2019-11-04"; //Başlangıç Tarihi
    $ekleme_tarih_2="2019-11-04"; //Bitiş Tarihi
    $ekleme_tarih_1=$ekleme_tarih_1." 00.00.01";
    $ekleme_tarih_2=$ekleme_tarih_2." 23.59.59";
    
    $query2 = $db->query("SELECT * FROM ad_siparis_urunler WHERE (date BETWEEN '$ekleme_tarih_1' and '$ekleme_tarih_2') and siparis_urun_adi = '$siparis_urun_adi'")->fetch(PDO::FETCH_ASSOC);
    Yukarıda paylaştığım kod ile belirlediğin iki tarih arasındakileri listeleyebilirsin.
  • 04-12-2019, 13:08:39
    #9
    salimsevindik adlı üyeden alıntı: mesajı görüntüle
    $siparis_urun_adi="BURAYADA ÜRÜN ADI GELECEK";
    $ekleme_tarih_1="2019-11-04"; //Başlangıç Tarihi
    $ekleme_tarih_2="2019-11-04"; //Bitiş Tarihi
    $ekleme_tarih_1=$ekleme_tarih_1." 00.00.01";
    $ekleme_tarih_2=$ekleme_tarih_2." 23.59.59";
    
    $query2 = $db->query("SELECT * FROM ad_siparis_urunler WHERE (date BETWEEN '$ekleme_tarih_1' and '$ekleme_tarih_2') and siparis_urun_adi = '$siparis_urun_adi'")->fetch(PDO::FETCH_ASSOC);
    Yukarıda paylaştığım kod ile belirlediğin iki tarih arasındakileri listeleyebilirsin.
    malesef daha az bir sonuç çıktı bu sefer hocam.

    edit : tamam sanırım sonuçlar düzgün detaylı kontrol edip tekrar yazıcam.
    edit 2: şuan sıkıntısız verileri alabiliyorum dolaylı yollardanda olsa sonuca ulaşabiliyorum, yardımcı olan arkadaşlara çok teşekkürler.