2017-01-10 80 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

相关问题