Neden/Nasıl Yanlış Veri Saydırıyor?
Bu şekilde kodum var. Bunda hiç problem yok. Bugün üye sayısı 1 olmalı çünkü veri tabanında öyle bir kayıt yok ama bana 29 kişi bugün üye oldu diyor. Çok enteresan bir olay.
Bu da sitemin "sözde kendim için hazırladığım analizi" https://www.girisimzel.com/merhabaekrani.php
Girdiğiniz anda saçma sapan bir şeyin döndüğünü anlayacaksınız ama onun neden kaynaklandığını ve nasıl çözeceğimi bulamadım.
Kodda hatalar var ancak ondan önce şunu belirtmek istiyorum, Mysql sunucunun timezone'u muhtemelen Türkiye'den farklıdır ondan kaynaklı kaymalar olur. Düzeltmek için hesap kodlarından önce şunu yazın:
$db->exec("SET time_zone='+03:00';");
Bugünkü satırları çekmek için:
select count(*) as total from uyeler where DATE(uye_tarih) = CURDATE()
Bu haftaki kayıtları çekmek için (son 7 gün değil! hafta başından itibaren):
select count(*) as total from uyeler where YEARWEEK(uye_tarih, 1) = YEARWEEK(CURDATE(), 1)
Not: Burada 1 parametresi haftayı pazartesinden başlatmak için.
Bu ayki kayıtları çekmek için (son 30 gün değil! ay başından itibaren):
select count(*) as total from uyeler where MONTH(uye_tarih) = MONTH(CURDATE()) AND YEAR(uye_tarih) = YEAR(CURDATE())
Bu yıl kayıtları çekmek için (son 365 gün değil! yıl başından itibaren):
select count(*) as total from uyeler where YEAR(uye_tarih) = YEAR(CURDATE())