为了简单起见,我的搜索框会在外部数据库中搜索食物。 搜索工作正常。如果我搜索披萨,代码会在数据库中找到披萨并显示它。如果我搜索鸡肉,代码会找到鸡肉。在数据库等。
<?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;什么都没有出现,页面不会加载任何东西,它不会以任何方式改变,好像所有的一样都是按下回车键。
如果在数据库中找不到某种食物,任何人都可以指导我如何显示错误的正确方向。
答案 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":