Merhaba arkadaşlar, php de yapmak istediğim bir şey var.
Bir tablo içerisinde yüzlerce data mevcut, hepsinin kayıt tarihi var 2018-11-23 14:25:28 şu şekilde.
Benim yapmak istediğimse, son 15 gün içerisindeki tüm günler için, tek tek o güne ait kaç tane veri olduğunu öğrenmek. Atıyorum ayın 20'sine 5 veri girilmiş, 23'ünde 20 veri girilmiş gibi.
Nasıl yaparım bunu?
Son 15 Gün'e Ait Data Sayısını Bulmalıyım
4
●213
- 05-12-2018, 19:42:00Selam, işini görür muhtemelen.
SELECT * FROM `tabloadi` WHERE tarihkolonu >= DATE_SUB( CURDATE( ) , INTERVAL 15 DAY ) ORDER BY tarihkolonu DESC
- 06-12-2018, 14:34:49Şöyle bir ekleme yapalım:
SELECT COUNT(order_id) AS ADET, C.O.N.C.A.T(YEAR(created_at), MONTH(created_at), DAY(created_at)) AS TARIH FROM orders WHERE created_at >= DATE_SUB( C.U.R.D.A.T.E( ) , INTERVAL 15 DAY ) GROUP BY YEAR(created_at), MONTH(created_at), DAY(created_at)
Not: Cloudflare engellediği için concat ve curdate fonksiyonlarının arasına nokta koydum. Düzeltmeniz gerekir.
Not2: Konu PHP ile ilgili değil MySQL ile ilgili (ya da hangi veritabanını kullanıyorsanız.)
Ekran çıktısı:

- 03-01-2019, 15:39:26Bu son 15 güne ait datayı versede, her güne ait tek tek data vermemekte.ibrahimfidan adlı üyeden alıntı: mesajı görüntüle
Aşağıda yazdığım MYSQL hatalı ama ne demek istediğimi anlatabilmişimdir belki.
$data = array(); for ($i=16; $i > 1; $i--) { $query = $db->query("SELECT * FROM orders WHERE orderDATE = '{$i}' DAYS AGO"); $data[$i] => $query->rowCount(); }Şu şekilde bi data istediğim
[1: 12, 2: 34, 3: 23, 4: 6, 5: 34, 6: 22, 7: 12, 8: 34, 9: 23, 10: 84, 11: 47, 12: 45, 13: 55, 14: 23, 15: 12]
Ya da bu şekil:
[12, 34, 23, 6, 34, 22, 12, 34, 23, 84, 47, 45, 55] - 03-01-2019, 20:55:18Aşağıdaki mysql sorgusu istediğiniz gibi galiba kontrol edebilirsiniz.
SELECT DATE(al.tarih) as tarih,(select count(id) from test_tablo where DATE(tarih) = DATE(al.tarih)) as toplam FROM test_tablo as al WHERE al.tarih >= DATE_SUB( CURDATE( ) , INTERVAL 15 DAY ) GROUP BY DATE(al.tarih) ORDER BY al.tarih DESC;
