我在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";
}
你帮我找错了,即使我搜索了数据库中不存在的东西,但程序没有显示“找不到结果”
谢谢
答案 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'; }