• 29-03-2023, 02:04:26
    #1
                                            $monthlyIncome1 = $MySQL->prepare("SELECT COUNT(*) AS SAYI, SUM(`gun`) AS GUN, SUM(`miktar`) AS CIRO FROM `girdiler` WHERE `date_cikis` LIKE :date_cikis", array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
                                            $monthlyIncome1->execute(array(":date_cikis" => date("Y")."-".date("m",strtotime('January'))."-%"));
                                            $fetchMonthlyIncome1 = $monthlyIncome1->fetch(PDO::FETCH_OBJ);
    
                                            $monthlyIncome2 = $MySQL->prepare("SELECT COUNT(*) AS SAYI, SUM(`gun`) AS GUN, SUM(`miktar`) AS CIRO FROM `girdiler` WHERE `date_cikis` LIKE :date_cikis", array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
                                            $monthlyIncome2->execute(array(":date_cikis" => date("Y")."-".date("m",strtotime('February'))."-%"));
                                            $fetchMonthlyIncome2 = $monthlyIncome2->fetch(PDO::FETCH_OBJ);
    
                                            $monthlyIncome3 = $MySQL->prepare("SELECT COUNT(*) AS SAYI, SUM(`gun`) AS GUN, SUM(`miktar`) AS CIRO FROM `girdiler` WHERE `date_cikis` LIKE :date_cikis", array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
                                            $monthlyIncome3->execute(array(":date_cikis" => date("Y")."-".date("m",strtotime('March'))."-%"));
                                            $fetchMonthlyIncome3 = $monthlyIncome3->fetch(PDO::FETCH_OBJ);
    Böyle bir kod yapım bulunmakta Ocak ve Mart ayındaki verileri düzgün bir şekilde çekebiliyorum fakat Şubat ayını yazdırmak istediğimde yine mart ayının verilerini yazdırıyor.

    <?=$fetchMonthlyIncome1->CIRO;?>, <?=$fetchMonthlyIncome2->CIRO;?>, <?=$fetchMonthlyIncome3->CIRO;?>
    Bu bölümü aşağıda ki gibi değiştirerek test etmek istedim fakat bu seferde ocak ayının verilerini yazdırdı.

    $monthlyIncome2->execute(array(":date_cikis" => date("Y")."-".date("m",strtotime('date("m")-1'))."-%"));
    Geri kalan 9 ayda da kodları kullanıyorum hiç bir sorun olmadan çalışıyor ama şubat ayına kesinlikle ulaşamıyorum
  • 29-03-2023, 02:09:23
    #2
    Fayso adlı üyeden alıntı: mesajı görüntüle
                                            $monthlyIncome1 = $MySQL->prepare("SELECT COUNT(*) AS SAYI, SUM(`gun`) AS GUN, SUM(`miktar`) AS CIRO FROM `girdiler` WHERE `date_cikis` LIKE :date_cikis", array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
                                            $monthlyIncome1->execute(array(":date_cikis" => date("Y")."-".date("m",strtotime('January'))."-%"));
                                            $fetchMonthlyIncome1 = $monthlyIncome1->fetch(PDO::FETCH_OBJ);
    
                                            $monthlyIncome2 = $MySQL->prepare("SELECT COUNT(*) AS SAYI, SUM(`gun`) AS GUN, SUM(`miktar`) AS CIRO FROM `girdiler` WHERE `date_cikis` LIKE :date_cikis", array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
                                            $monthlyIncome2->execute(array(":date_cikis" => date("Y")."-".date("m",strtotime('February'))."-%"));
                                            $fetchMonthlyIncome2 = $monthlyIncome2->fetch(PDO::FETCH_OBJ);
    
                                            $monthlyIncome3 = $MySQL->prepare("SELECT COUNT(*) AS SAYI, SUM(`gun`) AS GUN, SUM(`miktar`) AS CIRO FROM `girdiler` WHERE `date_cikis` LIKE :date_cikis", array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
                                            $monthlyIncome3->execute(array(":date_cikis" => date("Y")."-".date("m",strtotime('March'))."-%"));
                                            $fetchMonthlyIncome3 = $monthlyIncome3->fetch(PDO::FETCH_OBJ);
    Böyle bir kod yapım bulunmakta Ocak ve Mart ayındaki verileri düzgün bir şekilde çekebiliyorum fakat Şubat ayını yazdırmak istediğimde yine mart ayının verilerini yazdırıyor.

    <?=$fetchMonthlyIncome1->CIRO;?>, <?=$fetchMonthlyIncome2->CIRO;?>, <?=$fetchMonthlyIncome3->CIRO;?>
    Bu bölümü aşağıda ki gibi değiştirerek test etmek istedim fakat bu seferde ocak ayının verilerini yazdırdı.

    $monthlyIncome2->execute(array(":date_cikis" => date("Y")."-".date("m",strtotime('date("m")-1'))."-%"));
    Geri kalan 9 ayda da kodları kullanıyorum hiç bir sorun olmadan çalışıyor ama şubat ayına kesinlikle ulaşamıyorum
    chatgpt'ye sordunuz mu
  • 29-03-2023, 02:10:43
    #3
    $month = 2; * Şubat ayı için *
    $year = date("Y"); *Geçerli yıl*
     
    * Şubat ayının son gününü hesapla *
    $lastDayOfMonth = new DateTime("$year-$month-01");
    $lastDayOfMonth->modify('last day of this month');
     
    * Sorguyu hazırla *
    $monthlyIncome2 = $MySQL->prepare("SELECT COUNT(*) AS SAYI, SUM(`gun`) AS GUN, SUM(`miktar`) AS CIRO FROM `girdiler` WHERE `date_cikis` BETWEEN :start_date AND :end_date", array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
    $monthlyIncome2->execute(array(":start_date" => "$year-$month-01", ":end_date" => $lastDayOfMonth->format('Y-m-d')));
    $fetchMonthlyIncome2 = $monthlyIncome2->fetch(PDO::FETCH_OBJ);
  • 29-03-2023, 02:12:37
    #4
    hatanın sebebi şubat ayının 28 gün olması ve 4 yılda bir 29 çekmesi yılı hesaba katarsak düzelir çözüm olarak, date() ve strtotime() fonksiyonlarını kullanmak yerine, DateTime sınıfını kullanarak şubat ayının son gününü hesaplayabiliriz
  • 29-03-2023, 02:17:42
    #5
    Misafir adlı üyeden alıntı: mesajı görüntüle
    hatanın sebebi şubat ayının 28 gün olması ve 4 yılda bir 29 çekmesi yılı hesaba katarsak düzelir çözüm olarak, date() ve strtotime() fonksiyonlarını kullanmak yerine, DateTime sınıfını kullanarak şubat ayının son gününü hesaplayabiliriz
    Çok teşekkür ederim ilginiz ve yardımınız için direkt sizin verdiğiniz kodları kullandığımda komple error verdi sayfa maalesef
  • 29-03-2023, 02:19:16
    #6
    Fayso adlı üyeden alıntı: mesajı görüntüle
                                            $monthlyIncome1 = $MySQL->prepare("SELECT COUNT(*) AS SAYI, SUM(`gun`) AS GUN, SUM(`miktar`) AS CIRO FROM `girdiler` WHERE `date_cikis` LIKE :date_cikis", array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
                                            $monthlyIncome1->execute(array(":date_cikis" => date("Y")."-".date("m",strtotime('January'))."-%"));
                                            $fetchMonthlyIncome1 = $monthlyIncome1->fetch(PDO::FETCH_OBJ);
    
                                            $monthlyIncome2 = $MySQL->prepare("SELECT COUNT(*) AS SAYI, SUM(`gun`) AS GUN, SUM(`miktar`) AS CIRO FROM `girdiler` WHERE `date_cikis` LIKE :date_cikis", array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
                                            $monthlyIncome2->execute(array(":date_cikis" => date("Y")."-".date("m",strtotime('February'))."-%"));
                                            $fetchMonthlyIncome2 = $monthlyIncome2->fetch(PDO::FETCH_OBJ);
    
                                            $monthlyIncome3 = $MySQL->prepare("SELECT COUNT(*) AS SAYI, SUM(`gun`) AS GUN, SUM(`miktar`) AS CIRO FROM `girdiler` WHERE `date_cikis` LIKE :date_cikis", array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
                                            $monthlyIncome3->execute(array(":date_cikis" => date("Y")."-".date("m",strtotime('March'))."-%"));
                                            $fetchMonthlyIncome3 = $monthlyIncome3->fetch(PDO::FETCH_OBJ);
    Böyle bir kod yapım bulunmakta Ocak ve Mart ayındaki verileri düzgün bir şekilde çekebiliyorum fakat Şubat ayını yazdırmak istediğimde yine mart ayının verilerini yazdırıyor.

    <?=$fetchMonthlyIncome1->CIRO;?>, <?=$fetchMonthlyIncome2->CIRO;?>, <?=$fetchMonthlyIncome3->CIRO;?>
    Bu bölümü aşağıda ki gibi değiştirerek test etmek istedim fakat bu seferde ocak ayının verilerini yazdırdı.

    $monthlyIncome2->execute(array(":date_cikis" => date("Y")."-".date("m",strtotime('date("m")-1'))."-%"));
    Geri kalan 9 ayda da kodları kullanıyorum hiç bir sorun olmadan çalışıyor ama şubat ayına kesinlikle ulaşamıyorum
    Şu şekilde deneyin;
    $monthlyIncome1 = $MySQL->prepare("SELECT COUNT(*) AS SAYI, SUM(`gun`) AS GUN, SUM(`miktar`) AS CIRO FROM `girdiler` WHERE YEAR(`date_cikis`) = :year AND MONTH(`date_cikis`) = 1");
    $monthlyIncome1->execute(array(":year" => date("Y")));
    $fetchMonthlyIncome1 = $monthlyIncome1->fetch(PDO::FETCH_OBJ);
    
    $monthlyIncome2 = $MySQL->prepare("SELECT COUNT(*) AS SAYI, SUM(`gun`) AS GUN, SUM(`miktar`) AS CIRO FROM `girdiler` WHERE YEAR(`date_cikis`) = :year AND MONTH(`date_cikis`) = 2");
    $monthlyIncome2->execute(array(":year" => date("Y")));
    $fetchMonthlyIncome2 = $monthlyIncome2->fetch(PDO::FETCH_OBJ);
    
    $monthlyIncome3 = $MySQL->prepare("SELECT COUNT(*) AS SAYI, SUM(`gun`) AS GUN, SUM(`miktar`) AS CIRO FROM `girdiler` WHERE YEAR(`date_cikis`) = :year AND MONTH(`date_cikis`) = 3");
    $monthlyIncome3->execute(array(":year" => date("Y")));
    $fetchMonthlyIncome3 = $monthlyIncome3->fetch(PDO::FETCH_OBJ);
    date_cikis yılını ve ayını doğrudan SQL sorgusunda kontrol eder

    Herhangi bir ayı sorgulamak içinde;
    $monthlyIncome = $MySQL->prepare("SELECT COUNT(*) AS SAYI, SUM(`gun`) AS GUN, SUM(`miktar`) AS CIRO FROM `girdiler` WHERE YEAR(`date_cikis`) = :year AND MONTH(`date_cikis`) = :month");
    $monthlyIncome->execute(array(":year" => date("Y"), ":month" => $month));
    $fetchMonthlyIncome = $monthlyIncome->fetch(PDO::FETCH_OBJ);
    ancak $month değişkeni sorgulanacak ayın numarasını içermeli örneğin mart ayı ise $month değişkeni 3 olmalı
  • 29-03-2023, 02:19:46
    #7
    Fayso adlı üyeden alıntı: mesajı görüntüle
    Çok teşekkür ederim ilginiz ve yardımınız için direkt sizin verdiğiniz kodları kullandığımda komple error verdi sayfa maalesef
    kodların tamamını iletir misiniz
  • 29-03-2023, 02:21:31
    #8
    Misafir adlı üyeden alıntı: mesajı görüntüle
    kodların tamamını iletir misiniz
    Sizin verdiklerinizdende biraz yola çıkar şu şekilde değişiklik yaptım düzeldi sorun

                                            $monthlyIncome2 = $MySQL->prepare("SELECT COUNT(*) AS SAYI, SUM(`gun`) AS GUN, SUM(`miktar`) AS CIRO FROM `girdiler` WHERE `date_cikis` LIKE :date_cikis", array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
                                            $monthlyIncome2->execute(array(":date_cikis" => date("Y")."-02"."-%"));
                                            $fetchMonthlyIncome2 = $monthlyIncome2->fetch(PDO::FETCH_OBJ);
  • 29-03-2023, 02:23:06
    #9
    Fayso adlı üyeden alıntı: mesajı görüntüle
    Sizin verdiklerinizdende biraz yola çıkar şu şekilde değişiklik yaptım düzeldi sorun

                                            $monthlyIncome2 = $MySQL->prepare("SELECT COUNT(*) AS SAYI, SUM(`gun`) AS GUN, SUM(`miktar`) AS CIRO FROM `girdiler` WHERE `date_cikis` LIKE :date_cikis", array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
                                            $monthlyIncome2->execute(array(":date_cikis" => date("Y")."-02"."-%"));
                                            $fetchMonthlyIncome2 = $monthlyIncome2->fetch(PDO::FETCH_OBJ);
    iyi geceler, hayırlı ramazanlar hocam
    • Fayso
    Fayso bunu beğendi.
    1 kişi bunu beğendi.