如果在SQL中找不到搜索,则显示错误?

时间:2015-04-30 11:27:06

标签: php html sql error-handling

为了简单起见,我的搜索框会在外部数据库中搜索食物。 搜索工作正常。如果我搜索披萨,代码会在数据库中找到披萨并显示它。如果我搜索鸡肉,代码会找到鸡肉。在数据库等。

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

    }

?>

问题是,我的数据库当然不包含世界上所有的食物。所以,如果我为搜索而做了,那就说&#34; Rice&#34;什么都没有出现,页面不会加载任何东西,它不会以任何方式改变,好像所有的一样都是按下回车键。

如果在数据库中找不到某种食物,任何人都可以指导我如何显示错误的正确方向。

3 个答案:

答案 0 :(得分:3)

如果查询获得任何记录,只需添加一项检查。试试 -

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

答案 1 :(得分: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。

答案 2 :(得分:0)

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