1

好的,我今天一直在为我的网站创建搜索功能,到目前为止一切顺利,我找到了一个真正有用的 youtube 教程,我已将所有代码放入 search.php 文件中。

但是我收到了这些错误,也许有人可以向我解释并可能提供帮助

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/content/34/9587634/html/MyDomain.Com/search.php on line 21

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /home/content/34/9587634/html/MyDomain.Com/search.php on line 25

这是我使用的代码。我已经尝试搜索,但似乎无法找到问题

<html>
<?php
$k = $_GET['k'];
$terms = explode(" ", $k);
$query = "SELECT * FROM content WHERE ";

foreach ($terms as $each){
$i++; 

if ($i == 1)
$query .= "content LIKE '%$each%' ";
else
$query .= "OR content LIKE '%$each%' ";
}


include('config.php');


$query = mysql_query($query);
$numrows = mysql_num_rows($query);


while ($row = mysql_fetch_assoc($query)) {
$FirstName = $row['FirstName'];

}

?>
</html>

非常感谢所有帮助谢谢

4

2 回答 2

0

如果查询包含错误,mysql_query()将返回 FALSE。因此,您尝试执行查询mysql_query($query)和 mysql_query 返回 FALSE(也许)。函数mysql_num_rows()需要一个参数,它必须是 mysql_query() 函数的结果。不是布尔值。

但是 $query 是假的。

FALSE 是布尔值。

于 2013-01-05T20:13:31.323 回答
0

只需尝试以下示例:

<?php

if($_GET['k'])
{
    $terms = explode(" ", $k);

        foreach ($terms as $value) {

        if($value=='') $q.=""; else $q.="(`content-value` LIKE '%$value%' OR `content-value` LIKE '%$name%') ";

        if($q=="") $total=0;

    else
    {
        $search = "SELECT * FROM ".CONTENT." WHERE".$q;
        $search = str_replace('WHERE','WHERE ',$search);
        $search_res = mysql_query($search) or die("Search: ".$search.mysql_error());
        $total = mysql_num_rows($search_res);
    }
    }
}
?>

我认为这可以帮助您解决问题。

于 2013-01-05T22:25:12.107 回答