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()は 1 つのパラメーターを想定しており、それは mysql_query() 関数の結果でなければなりません。ブール値ではありません。

しかし、$query は FALSE です。

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 に答える