• 03-03-2020, 09:54:52
    #1
    Herkese günaydın, iki tarih aralığında 01.03.2020 00:00:00 31.03.2020 23:59:59 şeklinde verileri listelemek istiyorum fakat 2 aya ait verileride alıyor kodum aşşağıda ki gibi, yardımlarınızı rica ediyorum.
    <?php
                                        $AyBaslangic = date('d.m.Y',strtotime('first day of this month')).' 00:00:00';
                                        $AyBitis = date('d.m.Y',strtotime('last day of this month')).' 23:59:59';
                                        $AyTL="TL";
                                        $AySorgu = $db->prepare("select sum(Toplam) from siparisdetay where Tarih >=:AyBaslangic and Tarih <=:AyBitis and ParaBirim=:ParaBirim ");
                                        $AySorgu->bindParam(':AyBaslangic',$AyBaslangic, PDO::PARAM_STR);
                                        $AySorgu->bindParam(':AyBitis',$AyBitis, PDO::PARAM_STR);
                                        $AySorgu->bindParam(':ParaBirim',$AyTL, PDO::PARAM_STR);
                                        $AySorgu->execute();
                                        $TutarAySorgu = $AySorgu->fetch(PDO::FETCH_NUM);
                                        ?>
                                        TL Satış = <?php echo number_format($TutarAySorgu[0], 2, ',', '.'); ?>
  • 03-03-2020, 09:59:59
    #2
                                        $AySorgu = $db->prepare("select sum(Toplam) from siparisdetay where Tarih >=:AyBaslangic and Tarih <=:AyBitis and ParaBirim=:ParaBirim ");
    burada AND yerine BETWEEN kullanmalısınız
  • 03-03-2020, 10:00:15
    #3
    MySQL Between operatörü ile çok rahat yapabilirsin.
    https://www.techonthenet.com/mysql/between.php

    Google üzerinde arama yaparsanız bir çok örneği var.
  • 03-03-2020, 10:05:41
    #4
    Merhaba, between ile denemiştim önce aynı sonucu veriyor,
    <?php
                                        $AyBaslangic = date('d.m.Y',strtotime('first day of this month')).' 00:00:00';
                                        $AyBitis = date('d.m.Y',strtotime('last day of this month')).' 23:59:59';
                                        $AyTL="TL";
                                        $AySorgu = $db->prepare("select sum(Toplam) from siparisdetay where Tarih BETWEEN :AyBaslangic and :AyBitis and ParaBirim=:ParaBirim ");
                                        $AySorgu->bindParam(':AyBaslangic',$AyBaslangic, PDO::PARAM_STR);
                                        $AySorgu->bindParam(':AyBitis',$AyBitis, PDO::PARAM_STR);
                                        $AySorgu->bindParam(':ParaBirim',$AyTL, PDO::PARAM_STR);
                                        $AySorgu->execute();
                                        $TutarAySorgu = $AySorgu->fetch(PDO::FETCH_NUM);
                                        ?>
                                        TL Satış = <?php echo number_format($TutarAySorgu[0], 2, ',', '.'); ?>
    Misafir adlı üyeden alıntı: mesajı görüntüle
                                        $AySorgu = $db->prepare("select sum(Toplam) from siparisdetay where Tarih >=:AyBaslangic and Tarih <=:AyBitis and ParaBirim=:ParaBirim ");
    burada AND yerine BETWEEN kullanmalısınız
  • 03-03-2020, 10:12:06
    #5
    select sum(Toplam) from siparisdetay where (Tarih BETWEEN :AyBaslangic and :AyBitis) and ParaBirim=:ParaBirim

    Sorgunuzu bu şekilde güncelleyip denermisiniz.
  • 03-03-2020, 10:15:27
    #6
    $AySorgu = $db->prepare("select sum(Toplam) from siparisdetay where (Tarih BETWEEN :AyBaslangic and :AyBitis) and ParaBirim=:ParaBirim ");
    bunu bir deneyin
    • Gknst
    Gknst bunu beğendi.
    1 kişi bunu beğendi.
  • 03-03-2020, 10:19:19
    #7
    Aynı sonucu veriyor 2. aya ait toplamıda ekliyor
    alperkilickaya adlı üyeden alıntı: mesajı görüntüle
    select sum(Toplam) from siparisdetay where (Tarih BETWEEN :AyBaslangic and :AyBitis) and ParaBirim=:ParaBirim

    Sorgunuzu bu şekilde güncelleyip denermisiniz.




    Acaba tarih formatında bir sorun oluyor olabilir mi?
    03.03.2020 00:00:00 bunu saat tarih olarak kullandığım için olabilir mi? sadece tarih mi kullansam?
  • 03-03-2020, 10:46:40
    #8
    Gknst adlı üyeden alıntı: mesajı görüntüle
    Aynı sonucu veriyor 2. aya ait toplamıda ekliyor




    Acaba tarih formatında bir sorun oluyor olabilir mi?
    03.03.2020 00:00:00 bunu saat tarih olarak kullandığım için olabilir mi? sadece tarih mi kullansam?
    Veritabanınızda tarihi nasıl tuttuğunuz ile alakalıdır o, genellikle Y-m-d H:i:s biçiminde tutulur date('d.m.Y' bunu date('Y-m-d' olarak güncelleyip tekrar deneyin isterseniz.
  • 03-03-2020, 10:50:51
    #9
    Veritabanında da aynı şekilde tutuyorum 25.02.2020 10:28:37 sorgulamamda aynı şekilde gün bazında listeleme yaptığımda herhangi bir sorun olmuyor ama ay bazında yaptığımda diğer ayıda listeliyor.

    alperkilickaya adlı üyeden alıntı: mesajı görüntüle
    Veritabanınızda tarihi nasıl tuttuğunuz ile alakalıdır o, genellikle Y-m-d H:i:s biçiminde tutulur date('d.m.Y' bunu date('Y-m-d' olarak güncelleyip tekrar deneyin isterseniz.