如果 $_GET['something'] 没有结果显示错误

display error if $_GET['something'] no result

所以我在用查询字符串等搞乱 abit,但是如果这段代码没有结果,我想显示一个错误:

else {
          if (isset($_GET['Category'])) {
            $category = $_GET['Category'];
            $sql = "SELECT * FROM Posts WHERE Category='$category'";
            $stmt = $conn->prepare($sql);
            $stmt->execute(array(':category'=>$category));
            while($cat = $stmt->fetch(PDO::FETCH_ASSOC) ) {  
              ?>

              <div class="post_body">
                <div class="post_header">
                  <h2><?php echo "$cat[Title]";?></h2>
                </div>
                <?php echo "$cat[Post]";?>
                <a class="read-more" href="?ID=<?php echo "$cat[ID]";?>#lamna_kommentar">Lämna en kommentar</a>
                <hr>
                <div class="post_footer">
                  <span class="left_span">
                    <strong>Av: </strong><?php echo "$cat[Author]";?>
                    <strong>Kategori: </strong><?php echo "$cat[Category]";?>
                  </span>
                  <span class="right_span">
                    <strong>Datum: </strong><?php echo date_format( new DateTime($cat['Date']), 'd M Y, H:i' );?>
                    <strong>Inlägg: #</strong><?php echo "$cat[ID]";?>
                  </span>
                </div>
              </div>  
              <?php 
            }
          }

因为它现在有效,这个 link 显示 a class="read-more" href="?ID=<?php echo "$cat[ID]";?>#lamna_kommentar">Lämna en kommentar</a> 但没有其他结果时什么也没有。

我真的想不通,可能很简单,任何指导将不胜感激。

您可以测试返回的行数:

if ($stmt->rowCount() == 0) {
    // display error
} else {
    while ($cat = $stmt->fetch(PDO::FETCH_ASSOC)) {
        ...
    }
}