mysql_num_rows()需要参数1

时间:2013-08-04 00:53:03

标签: php mysql

以下代码有效:

     $cond=" and (country like '%$location%' or  state like '%$location%') ";
     $q = mysql_query("select $fields from $table $cond LIMIT ".$this->offset.", ".$this->rowsPerPage);
    $q2 = mysql_query("select $fields from $table $cond  ");
    $this->numrows = mysql_num_rows($q2);
    $paging = new Paging();
  $paging->rowsPerPage=10;
 $q = $paging->sql("*","table1","where status ='1' $cond order by id desc ");

table1 =

ID-国家

1我们

2-ES

3-它

4-UK


table2 =

名称 - 异

美国 - 我们

意大利-它

英国 - 英国

西班牙-ES


在搜索中,这会找到“我们”而不是“美国” 我试图加入表但得到错误:

    $cond=" JOIN table2 ON table2.iso=table1.country and (name like '%$location%' or country like '%$location%' or  state like '%$location%' ) ";

    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in

有人可以帮忙吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

那是因为mysql_query有时会返回boolean false(查询错误)。你需要检查一下:

尝试检查查询..天气它在mysql查询浏览器中工作。

$q2 = mysql_query("select $fields from $table $cond  ");

if($q2 === false) {
    var_dump(mysql_error());
}
else {
    print_r(mysql_num_rows($q2));
}

上面的代码写得很糟糕并且已弃用。在实际项目中使用PDO和例外。