我的网站上有一个搜索表单,如果用户搜索我的数据库中不存在的内容,我希望它返回错误
<?php
$search = $_POST['search' ];
$numrows = mysql_num_rows ($result );
if($numrows != 0) echo "No results";
?>
这是我的搜索表单使用的代码,但是echo&#34;没有结果&#34;在主页上显示所有结果,但在搜索没有结果时不显示。
我是PHP的初学者,所以我完全不确定为什么会这样。
如果您需要我的完整代码,请在下面填写:
答案 0 :(得分:1)
不会
if($numrows == 0) echo "No results";
如果找不到任何东西?
$numrows = mysql_num_rows ($result );
不应该在实际所在的地方。您应该执行以下操作:
$count = count($result);
if($count > 0)
{
while ($row =mysql_fetch_object ($result)) {
// do your stuff
}
}
else
{
echo 'no results';
}
另外,你的while循环中$search = $_POST['search' ];
的重点是什么?你似乎根本不使用它。
答案 1 :(得分:0)
首先,给出代码。我会问$ result是否包含查询结果?
即
$result = mysql_query("SELECT * FROM table1", $link);
$num_rows = mysql_num_rows($result);
其次,mysql_num_rows()返回行数或FALSE。因此,请仔细检查$ results是否是来自有效查询的有效结果集。
希望这有帮助。
答案 2 :(得分:0)
在你之前移动你的if并且它可以工作
现在
while ($row =mysql_fetch_object ($result)) {
[...]
$numrows = mysql_num_rows ($result );
if($numrows != 0)
[...]
正确
$numrows = mysql_num_rows ($result );
if($numrows == 0){ echo 'no result'; die();}
while ($row =mysql_fetch_object ($result))
[...]
因为如果结果为空而没有执行循环。