2017-01-10 87 views
1
<?php 
    $stmt = $con->prepare("SELECT id FROM sample WHERE ID = (SELECT MAX(id) FROM sample)"); 
    $stmt->execute(); 
    $stmt->setFetchMode(PDO::FETCH_ASSOC); 
    $result = $stmt->fetchAll(); 

    foreach ($result as $row2) { 
     $auto1 = $row2['id']; 

      if ($auto1 ===' ') { 
       echo "There is no ID!"; 
      } else { 
       echo $auto1; 
      } 

    } 
?> 

它表現出極大的ID,如果有數據庫值,但是當我刪除所有數據,以嘗試,如果我得到的結果「沒有身份證ID!「它不顯示..幫我請如何在PHP中顯示,如果沒有對數據庫表沒有價值

+0

也許你可以試試['rowCount()'](http://php.net/manual/en/pdostatement.rowcount.php)? –

+0

uhmmm我正在使用MAX(),因爲我正在創建一個生成的ID基於我的自動增量..我的問題是什麼時候沒有數據庫上的數據..它會給出1的值。我使用MAX,因爲如果用戶創建另一種形式..它將獲得自動增量的最大值並添加1.它將保存到自動生成ID的列中,如「002」。 –

+0

您是否希望在沒有行時顯示錯誤消息從您的數據庫查詢返回? – BizzyBob

回答

1

您的代碼,因爲它當前是不會遇到您的錯誤消息時返回零行。在那裏你會得到這個信息的線路是:

$result = $stmt->fetchAll(); 

fetchAll()方法將返回FALSE,如果沒有行返回,所以只檢查值,並相應地顯示錯誤消息。

<?php 
    $stmt = $con->prepare("SELECT id FROM sample WHERE ID = (SELECT MAX(id) FROM sample)"); 
    $stmt->execute(); 
    $stmt->setFetchMode(PDO::FETCH_ASSOC); 
    $result = $stmt->fetchAll(); 


    if($!result){ 
     echo "No rows found..!"; 
    } else { 
     foreach ($result as $row2) { 
      $auto1 = $row2['id']; 

      if ($auto1 ===' ') { 
       echo "There is no ID!"; 
      } else { 
       echo $auto1; 
      } 
     } 
    } 
?> 
+0

哇,你救了我:D和感謝給我的想法如何fetchall()工程:D –

+0

不客氣。 。! :-) – BizzyBob