2017-02-14 75 views
-2

各地的查詢字符串等升技這樣的IM搞亂,但是我想,如果沒有從這個代碼結果顯示錯誤:

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 
      } 
      } 

,因爲它現在工作此鏈接顯示a class="read-more" href="?ID=<?php echo "$cat[ID]";?>#lamna_kommentar">Lämna en kommentar</a>但沒有其他沒有結果時。

我真的不知道這個,可能是簡單的東西,任何指導將不勝感激。

+1

你不必在你的查詢字符串名爲「類別」什麼 –

+0

** WARNING **:當使用PDO,你應該使用方法制得。語句](http://php.net/manual/en/pdo.prepared-statements.php)與佔位符值並提供任何用戶數據作爲單獨的參數。在此代碼中,您可能會遇到嚴重的[SQL注入漏洞](http://bobby-tables.com/)。切勿使用字符串插值或連接,而應使用[準備語句](http://php.net/manual/en/pdo.prepared-statements.php),並且絕對不要將'$ _POST'或'$ _GET'數據直接放入您的查詢。有關此問題和其他問題的指導,請參閱[PHP正確方法](http://www.phptherightway.com/)。 – tadman

+0

@tadman是啊謝謝,不是一個生產網站或如此atm所以我真的很困擾 –

回答

1

您可以測試所返回的行數:

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

如果你使用rowCount代替它的作品,謝謝! :) –

+0

哎呀,混淆了PDO和mysqli,對不起,關於 – Barmar

+0

不用擔心,再次感謝:) –