获取mysql_num_rows()期望参数1是资源,给定布尔值

时间:2013-07-28 12:43:10

标签: php

我不明白为什么会这样,请帮帮我!感谢。

这是我的代码:

$sql1 = mysql_query("SELECT * FROM subcategory WHERE category_id = $currentCategory ORDER BY display_name ASC");
$subCatHtml = '<li class="'.($currentSubCategory == '' ? 'active' : '').'"><a href="?c='.$currentCategory.'">All</a></li>';
$scCount = mysql_num_rows($sql1); // count the output amount
while ($row = mysql_fetch_array($sql1)) {
    $subCatHtml .= '<li class="'.($row["id"]==$currentSubCategory ? 'active' : '').'"><a href="?c='.$currentCategory.'&s='.$row["id"].'">'.$row["display_name"].'</a></li>';
}

这是错误:

  

警告:mysql_num_rows()期望参数1为资源,第17行/home/content/21/11311721/html/product_display_inlcude.php中给出布尔值

     

警告:mysql_fetch_array()要求参数1为资源,布尔值在第18行的/home/content/21/11311721/html/product_display_inlcude.php中给出

3 个答案:

答案 0 :(得分:0)

你的sql语法有错误,所以mysql_query返回false

试试这个:

$sql1 = mysql_query("SELECT * FROM subcategory WHERE category_id = $currentCategory ORDER BY display_name ASC") or die(mysql_error());

并检查您有哪些错误。

小心:

请不要再使用mysql_ *函数并切换到mysqli_ *函数。此外,您应该在将它们插入sql-query之前转义它们。

答案 1 :(得分:0)

您的查询有问题

"SELECT * FROM subcategory WHERE category_id = $currentCategory ORDER BY display_name ASC"

检查案例敏感度,表名列名以查找错误

答案 2 :(得分:0)

请检查您与数据库的连接。 此外,如果category_id不是整数,则应将$ category_id括在引号

SELECT * FROM subcategory WHERE category_id = '$currentCategory' ORDER BY display_name ASC