警告:mysql_num_rows()期望参数1是资源,

时间:2015-10-27 13:36:14

标签: php mysql error-handling

帮助我尝试为我的系统创建一个搜索栏,这不像谷歌搜索栏,它只是在我的数据库中搜索并仅显示我的数据库的结果。我一直在网上搜索它,我甚至看了几个小时的youtube视频并修复了好几个小时,我也尝试了很多不同的方法,我从互联网和youtube来源但仍然无法正常工作。如果你们有任何资源可以帮助我,这将是伟大的。非常感谢。

详细信息 在开始这个编码有很多错误,然后我终于设法修复它,直到它只有1个错误,我不能再这样做了,我不知道这个代码有什么问题。我的数据库名为' rental'我想要使​​用的表格是'广告'

我得到了我的' k'从我的名字和id =' k'并从用户输入中获取值

<form action ='./MainResult.php' method='get'>
    <input type ='text' name ='k' id='k' size='30' value='<?php echo $_GET["k"]; ?>' />
    <input type='submit' value='search' >
  </form>
抱歉我的英语,我真的希望有人能帮助我解决这个问题。

警告:mysql_num_rows()期望参数1为资源,第54行的C:\ wamp \ www \ RentalCar \ MainResult.php中给出布尔值

        &#39; /&GT;                     
<?php 
    $k=$_GET['k'];

    $terms = explode(" ", $k);
    $query = "SELECT * FROM search WHERE ";

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

        if ($i == 1)
            $query .= "SELECT * FROM advertisement WHERE keywords LIKE '%$each%' ";
        else
            $query .= "SELECT * FROM advertisement OR keywords LIKE '%$each%' ";

    }

    //Connect
    mysql_connect("localhost", "root", "");
    mysql_select_db("rental");

    $query = mysql_query($query);
    $numrows = mysql_num_rows($query);    **<------ this was the line 54**
    if ($numrows > 0){

        while ($row = mysql_fetch_assoc($query)){
            $Tittle = $row_advertisement['Tittle'];
            $Brand = $row_advertisement['Brand'];
            $Transmission = $row_advertisement['Transmission'];

            echo "<h2>$tittle</h2>
            $Transmission ";

    }

    }
    else
        echo "No result found for \"<b>$k</b>\"";

?>

1 个答案:

答案 0 :(得分:0)

您错过了错误处理:

$query = mysql_query($query);
if($query === false){
    //if the query fails, this will tell you the problem
    echo "Error occured: ". mysql_error();
    //do further error-handling here
}
$numrows = mysql_num_rows($query); 

另请注意,mysql-extension 已弃用。使用较新的 mysqli-extension cross-DB-extension PDO