0

嗨,我使用 COunt(*) 在我的 php 代码中进行分页,

变量 $cat ,有时看起来像这样

$cat = "1,2,3,4,5,6,7,8,9,0"; 
$cat = "1";

这次我需要多只猫,这就是为什么谢谢你错过了,

我总是使用类似的东西

$query = "SELECT COUNT(*) as num FROM $tableName WHERE cat_id=$cat";
    $total_pages = mysql_fetch_array(mysql_query($query)or trigger_error('Query failed: ' . mysql_error(), E_USER_ERROR));
    $total_pages = $total_pages['num'];

但现在我需要使用 WHERE id IN (1,2,3,4,5,etc) 这是实际的查询..

$query = "SELECT COUNT(*) as num FROM $tableName WHERE cat_id IN ($cat)";
    $total_pages = mysql_fetch_array(mysql_query($query)or trigger_error('Query failed: ' . mysql_error(), E_USER_ERROR));
    $total_pages = $total_pages['num'];

但是我使用 WHERE IN 得到这个错误

   Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /Applications/MAMP/htdocs/pcweb/admin/tiendas.php on line 173

那么你如何计算这个计数.. 谢谢我认为一定有一个简单的语法错误,但我找不到它,因为我从未使用过 Where IN,我在这里查看文档。http://www.w3schools.com/sql/sql_in.asp但我想我不知道谷歌到底是什么,所以我问..

谢谢

4

2 回答 2

2

你在这条线上做了太多的事情:

$total_pages = mysql_fetch_array(mysql_query($query)or trigger_error('Query failed: ' . mysql_error(), E_USER_ERROR));

拆分它:

$query = mysql_query($query);
if (!$query) {
    trigger_error('Query failed: ' . mysql_error(), E_USER_ERROR);
    // `exit;` or `return;` or do something else.
}
$total_pages = mysql_fetch_array($query);

问题是 trigger_error 实际上并没有停止控制流。当您发现出现问题时,您实际上需要停止执行。

于 2013-09-09T00:48:09.233 回答
0

如果$cat是数组,则执行以下操作:

$query = "SELECT COUNT(*) as num FROM $tableName WHERE cat_id IN (" . implode(',',$cat) . ")";
于 2013-09-09T00:15:24.327 回答