2014-10-29 22 views
0

我有簡單的腳本來搜索數據庫中的東西。如果在表格中沒有找到任何結果,則應該寫下「Neni k dispozici」。我的問題是,如果我搜索一些不在數據庫中的東西,它會給我一個空白的結果。所以我嘗試寫條件如果(空($行))...但我從來沒有得到這個結果,我只是再次空白頁。我的第二個想法是,奧奇,它可能不是空的。所以我嘗試var_dump($ row)和print_r,但是我沒有得到任何結果。空白頁...但如果我嘗試尋找一些東西,是在數據庫中,我得到很好的var_dump所以沒有什麼阻止此如果在MYSQL表中沒有找到數據(PHP)

我的代碼如下所示:

    try{ 
        $sql = "SELECT * FROM axnmrs_calculations WHERE case_id = :case AND country = :country ORDER BY calculation_id DESC LIMIT 1"; 
        //$sql = "SELECT * FROM axnmrs_calculations WHERE case_id = :case LIMIT 1"; 
        $stmt_calculations = $con->prepare($sql); 
        $stmt_calculations->bindValue("case", $this->case, PDO::PARAM_STR); 
        $stmt_calculations->bindValue("country", $this->country, PDO::PARAM_STR); 
        $stmt_calculations->execute();     
        while ($row = $stmt_calculations->fetch()){ 
        print_r($row); 
        if (empty($row)){ 
         echo "<dt>Údaje ke kalkulaci</dt>";        
         echo "<dd>Neni k dispozici</dd>";} 
        else{       
         $this->calculationid = $row['calculation_id']; 

         echo "<dt>Cena náhradních dílů</dt>"; 
         $spare_parts = floatval($row['spareparts']); // Convert do FLOAT (kôli number_format funkcii) 
         $spare_parts = number_format($spare_parts, 2, ',', ' '); 
         echo "<dd>".$spare_parts."</dd>"; 
         //echo "<dd>".$row['spareparts']."</dd>"; 

         echo "<dt>Celkové náklady</dt>"; 
         $totalcosts = floatval($row['totalcosts']); // Convert do FLOAT (kôli number_format funkcii) 
         $totalcosts = number_format($totalcosts, 2, ',', ' '); 
         echo "<dd>".$totalcosts."</dd>";       
         //echo "<dd>".$row['totalcosts']."</dd>";       

         echo "<dt>Celkový počet hodin práce</dt>"; 
         if (empty($row['laborhours'])){ 
         echo "<dd>Neni k dispozici</dd>";} 
         else       
         echo "<dd>".$row['laborhours']."</dd>"; 

         echo "<dt>Datum vytvoření kalkulace</dt>"; 
         if (empty($row['calculationdate'])){ 
         echo "<dd>Neni k dispozici</dd>";} 
         else        
         echo "<dd>".substr($row['calculationdate'], 0, 10)."</dd>";  // ODSTRANIT 0000 

         echo "<dt>Lakovací materiál</dt>"; 
         if (empty($row['paintmaterial'])){ 
         echo "<dd>Neni k dispozici</dd>";} 
         else{ 
         $paintmaterial = floatval($row['paintmaterial']); // Convert do FLOAT (kôli number_format funkcii) 
         $paintmaterial = number_format($paintmaterial, 2, ',', ' '); 
         echo "<dd>".$paintmaterial."</dd>"; }       
         //echo "<dd>".$row['paintmaterial']."</dd>"; 

         echo "<dt>Měna</dt>"; 
         if (empty($row['currency'])){ 
         echo "<dd>Neni k dispozici</dd>";} 
         else 
         echo "<dd>".$row['currency']."</dd>"; 
         }             
         } 

         }catch(PDOExeption $e){ 
         echo $e->getMessage(); 
         echo $con->errorInfo(); 
         } 

有人可以給我建議我怎麼能檢查如果數據在數據庫中,如果沒有,我寫了一些錯誤消息?

感謝

回答

0

你可以問他有多少行等返回並添加一些錯誤,根據它處理..

if ($statement->execute()) { 
    $statement->store_result(); 
    if ($statement->num_rows >= "1") { 
     while ($statement->fetch()) { 
     } 
    } 
} 
+0

喜鳴,感謝您的回答。你的代碼如何不適合我。更具體地說,我得到0結果。 – Andurit 2014-10-29 15:57:05

+0

如果您在phpmyadmin中運行sq,那麼您會得到多少結果?可能是sql問題。 – Naruto 2014-10-29 15:58:28

+0

0結果,就是這樣。在PHP中有一些問題imo – Andurit 2014-10-29 16:05:46

相關問題