v2.5.2
Giriş yap

İçerik Bulunamadı Uyarısı Yazdırma

ynscnr55
429 defa görüntülendi ve 1 kişi tarafından değerlendirildi

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>
Cevap yaz
Cevaplar (3)
trsherlock
807 gün önce

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ı";
    }
    
?>
ynscnr55
807 gün önce

Merhaba, say değişkenini 0'a da eşitledim boş da bıraktım ama sonuç aynı oldu.Bilgisayar başına geçince farklı bir şey deneyeceğim. Teşekkür ederim.

sarjaleti
807 gün önce

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