如果搜索返回没有给出错误

时间:2015-04-29 10:18:40

标签: php mysql

我的网站上有一个搜索表单,如果用户搜索我的数据库中不存在的内容,我希望它返回错误

<?php

$search = $_POST['search' ];

$numrows = mysql_num_rows ($result );

if($numrows != 0) echo "No results";
?>

这是我的搜索表单使用的代码,但是echo&#34;没有结果&#34;在主页上显示所有结果,但在搜索没有结果时不显示。

我是PHP的初学者,所以我完全不确定为什么会这样。

如果您需要我的完整代码,请在下面填写:

http://pastebin.com/xjxwhfDT

3 个答案:

答案 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)) 
[...]

因为如果结果为空而没有执行循环。