2015-04-30 51 views
1

我對SQL和PHP非常陌生,對我一無所知。如果在SQL中找不到搜索,則顯示錯誤?

爲了簡單起見,我的搜索框在外部數據庫中搜索食物。 搜索工作正常。如果我搜索披薩,代碼會在數據庫中找到匹薩並顯示它。如果我搜索雞肉,代碼會找到雞肉。內數據庫等

<?php 

$searchquery = mysql_real_escape_string(trim($_POST['searchquery'])); //this is how we search and display results 
$find_searchengine=mysql_query("SELECT * FROM searchengine WHERE food_name LIKE '%$searchquery%'"); //we look within the external database 
while($row = mysql_fetch_assoc($find_searchengine)) 


{ 
    $food_name = $row['food_name']; 

    echo "$food_name<br/>"; //Sorry our servers are down today 

    } 

?> 

問題是,我的數據庫當然不包含世界上所有的食物。所以,如果我爲搜索做了讓我們說「大米」,沒有什麼會出現,頁面將不會加載任何內容,它不會以任何方式改變,就像所有的操作都是按下輸入按鈕一樣。

任何人都可以指導我如何在數據庫中找不到某種食物時顯示錯誤的正確方向。非常感謝

+1

以及下面你的答案可能也想看看轉換爲PDO和準備語句當前的代碼已被棄用,將在PHP – Dave

回答

0
if(empty($row['food_name'])) 
    print"Food is not found": 
+1

的未來版本中被刪除非常感謝你,它的工作完美。 您是否有任何想法如何在「找不到食物」句子之前找到搜索詞。 所以...可以說(水稻​​「沒有找到」) – Thedoode

+0

通過網址發送輸入的單詞。像標題一樣(「location:page.php?word =」。$ enteredword) – Elyor

3

只要添加一個檢查,如果查詢得到任何記錄。試着用 -

if(mysql_num_rows($find_searchengine) > 0) { 
    // process data 
} else { 
    //display error 
} 
0

嘗試這樣的:

if(mysql_num_rows($find_searchengine) > 0){ 
while($row = mysql_fetch_assoc($find_searchengine)) 
{ 
    $food_name = $row['food_name']; 

    echo "$food_name<br/>"; //Sorry our servers are down today 

    } 
}else{ 
     echo "not match found for search criteria"; 
} 

注:以上所有這些停止使用mysql和啓動的mysqli或PDO。

相關問題