检查mysql db中是否找不到任何结果

时间:2011-10-23 04:31:42

标签: php mysqli

我在mysqli上写了一个php搜索表,但它工作正常,但如果没有找到结果,我想向用户显示正确的消息。

这是我目前的代码:

$search_string=$_GET["design"];

$connect= mysqli_connect("mysql.myhost.com","abc","123456","mydb_db");
$query="select * from product where product_design like '%$search_string%'";
$rows= @mysqli_query($connect,$query) or die("Error: ".mysqli_error($connect));
if ($rows!=null)//I put this if to check if there is any result or not but its not working
{

while(($record=mysqli_fetch_row($rows))!=null)
{
    .
            .//i have working code for showing the result here
            .
}   
mysqli_close($connect);
}
else{
echo"no result found";
}
你帮我找错了,即使我搜索了数据库中不存在的东西,但程序没有显示“找不到结果”

谢谢

2 个答案:

答案 0 :(得分:3)

您需要的是mysqli_num_rows,特别是mysqli_result::num_rows位。这会向mysqli结果集添加num_rows属性。这意味着你可以做到

$rowCount = $rows->num_rows

还有一个非OO等价物......

$rowCount = mysqli_num_rows($rows);

(差异纯粹是编码风格之一)

使用其中一个来确定返回的记录数并输出相应的消息。

答案 1 :(得分:0)

以下行没有意义,可能是问题所在。

while(($record=mysqli_fetch_row($rows))!=null)

但是,如果$ row为空,则$ row不会返回'null',但是不能设置。这样做:

if ($rows) { echo 'works';} else { echo 'no rows'; }