İçerik Bulunamadı Uyarısı Yazdırma
Arkadaşlar merhaba. Kategoriye ait içerikleri listeletiyorum fakat kategoriye ait bir içerik yoksa bir uyarı ekranı yazdırmaya çalışıyorum fakat ekran yine de boş çıkıyor. Yardımcı olur musunuz ?
<ul class="cards">
<?php
$duyurusor=$db->prepare("SELECT * from duyurular where duyurular_durum='1' and duyurular_kategori=:resim_id");
$duyurusor->execute(array(
'resim_id' => $kategoriCek['kategori_id']
));
$say=$duyurusor->rowCount();
while ($duyurucek=$duyurusor->fetch(PDO::FETCH_ASSOC)) {
if ($say==false) { // false değerini true yaptıgım zaman uyarı kısmını devreye alıyor ve yazdırabiliyorum ama 0 ya da false olduğu zaman uyarı çıkmıyor.
echo '<div class="alert alert-warning alert-dismissible fade show" role="alert">
<strong>HoopSS..!</strong> Duyuru Bulunamadı.
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>';
?>
<div class="alert alert-warning alert-dismissible fade show" role="alert">
<strong>HoopSS..!</strong> Duyuru Bulunamadı.
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
<?php } else { ?>
<li>
<a href="<?=seo('duyurular-'.$duyurucek['duyurular_ad']).'-'.$duyurucek['duyurular_id']?>" class="card">
<img style="height:420px;" src="<?php echo $duyurucek['duyurular_resimyol'] ?>" class="card__image" alt="<?php echo $duyurucek['duyurular_ad']; ?>" />
<div class="card__overlay">
<div class="card__header">
<svg class="card__arc" xmlns="http://www.w3.org/2000/svg"><path /></svg>
<img class="card__thumb" src="https://i.imgur.com/7D7I6dI.png" alt="" />
<div class="card__header-text">
<h3 class="card__title"><?php echo $duyurucek['duyurular_ad']; ?></h3>
<span class="card__status"><?php echo $duyurucek['duyurular_zaman']; ?></span>
</div>
</div>
<p class="card__description"><?php echo $duyurucek['duyurular_desc']; ?></p>
</div>
</a>
</li>
<?php } } ?>
</ul>
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (3)
Kardeşim sen karşılaştırmayı döngüden sonra yapmışsın.
Varsayalım gelen bir veri var?
$say
değerin 1
olacaktır. Bu durumda While
değer gördüğü için döngüyü başlatacaktır.
if
satırına geldiği zaman $say == false
karşılaştırması da true
olur fakat sen false
istiyorsun eşleşmeyeceği için else
çalışacaktır.
Açıklamana göre sen false
yerine true
yaptığın zaman şartı yerine getirdiğin için kod çalışacaktır fakat else
çalışmayacaktır.
İlk if
sonra While
kullanırsan değer yoksa 0
olacağı için uyarıyı çıkar.
Değer varsa 1
olacağı için if
çalışır.
<?php
$rowCount = 1; //true
if($rowCount) { // true olduğu için == true yazmana gerek yok.
While();
} else {
echo "içerik bulunamadı";
}
?>
Merhaba, rowCount
integer değer döndürüyor
$say
değişkenini 0'a eşitse göster diye düzenlemeyi deneyebilirsin
Kaynak:
https://www.php.net/manual/en/pdostatement.rowcount.php