PHP Mysql Bu Ay ve Geçen Ayın Verilerini Listelemek

1. Yol Mysql’de Bu ayın verilerini sorgulamak için kullanılan yapı:

SELECT* FROM tablo_adi where eklenme_tarihi >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH);

Bunu kullanarak direk son 1 aylık verileri listeleyebilirsiniz. Bu sorgunun sağlıklı çalışabilmesi için eklenme_tarihi sütununun date yapısında oluşturulmuş olması gerekmektedir.

2. Yol PHP kullanarak gelen verilerden bu ayın verilerini filtrelemek

Ben bunun dışında farklı bir yol kullanıyorum öncelikle mantığını anlatmak gerekirse, tablo_adi ismindeki tablodan tüm verileri çekiyorum, foreach içinde yazdırırken date(“m.Y”) ile bu ay yılı $buayy isimli değişkende tutup, if kullanarak gelen verinin ay günü yılı ($buayg) ile bu ayın ay günü yılı ($buayy) eşit mi değil mi diye bakıp eşitse sırala diyorum.  Örneğin:

<?php
$sorgu_cumlesi="SELECT * FROM tablo_adi";
$sorgu = mysql_query($sorgu_cumlesi);
while($satir=mysql_fetch_array($sorgu)) { $veriler[$satir['id']]=$satir; }
?>
<?php $sirano=1; ?>
<?php foreach ($veriler as $buay) : ?>
<?php $buayg = $buay['eklenme_tarihi']; $buayy = date("m.Y", strtotime($buayg)); $buaybu = date("m.Y"); ?>
<?php if ($buayy==$buaybu) { ?>
<tr>
<td>
<?php $say = $sirano++; echo $say; ?>
</td>
<td>
<?php echo date('d.m.Y', strtotime($buayg)); ?>
</td>
<td>
<?php echo $buay['aciklama']; ?>
</td>
</tr>
<?php } ?>
<?php endforeach; ?>

** Bu yapıda eklenme_tarihi isimli tablonun yapısının date yada d-m-Y formatında olması gerekmektedir.

Geçen Ayın Verilerini Listelemek için de benzer bir yapı kullanarak $gecenayy değişkeninde geçen ay yılı tutup, kayıtlardan geçen ay yılın verileriyle uyuşanları listelemek için kod örneğim:

<?php
$sorgu_cumlesi="SELECT * FROM tablo_adi";
$sorgu = mysql_query($sorgu_cumlesi);
while($satir=mysql_fetch_array($sorgu)) { $veriler[$satir['id']]=$satir; }
?> 
<?php $sirano=1; ?>
<?php foreach ($veriler as $buay) : ?>
<?php
$buayg = $buay['eklenme_tarihi']; $buayy = date("m.Y", strtotime($buayg));$gecenayy = strtotime("last Month");$gecenay = date("m.Y", $gecenayy);
?>
<?php if ($buayy==$gecenay) { ?>
<tr>
<td>
<?php $say = $sirano++; echo $say; ?>
</td>
<td>
<?php echo date('d.m.Y', strtotime($buayg)); ?>
</td>
<td >
<?php echo $buay['aciklama']; ?>
</td>
</tr>