Yıllara göre veri çekmek, tek sorgu da mümkün mü?
Yazilar tablomdan yil sütununa göre ayrı ayrı kartlarda o yılın başlıklarını listeletmek istiyorum.
$buyil= date("Y");
$yillikyazilar = $db->vericek('yazilar', "where yil=?", array($buyil), "order by id desc");
Örneğin yukarıda ki sorguda bu yılın yazılarının başlıklarını 2021 yazıları diye adlandırdığım kartıma çekiyorum.
<div class="card-header">
<!-- bu yıl : 2021 yılının yazıları kartı -->
<h3 class="card-title"><?= $buyil; ?> Yılı Yazılarımız</h3>
</div>
<div class="card-body">
<?php
for ($i = 0; $i < count($yillikyazilar); $i++) {
?>
<li> <?= $yillikyazilar[$i]["baslik"]; ?></li>
<?php } ?>
</div>
Her card için ayrı ayrı mı veri çağırmalıyım ? bunun kolay yolu yok mu?
son 4 yıl için cardlar yapıp 5. card da da geri kalan tüm yılların başlıklarını çağırmak istiyorum?
nasıl yapabilirim? Yardımınızı rica ediyorum.
İlk önce yılları al
$query = $db->query(" SELECT yil FROM yazilar GROUP BY yil", PDO::FETCH_ASSOC);
Sonra yılları sırala. 2. bir sorgu ile card body içinde ilk sorgumuzdan gelen yıl verisine göre verileri çek
<?php foreach ($query as $row): ?>
<div class="card-header">
<h3 class="card-title"><?= $row['yil']; ?> Yılı Yazılarımız</h3>
</div>
<div class="card-body">
<?php
$query2 = $db->query(' SELECT * FROM yazilar WHERE yil = '.$row['yil'].' ', PDO::FETCH_ASSOC);
?>
<?php foreach ($query2 as $row2): ?>
<li><?=$row2['baslik']?></li>
<?php endforeach ?>
</div>
<?php endforeach ?>