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

それでは、どうやってこの数を数えますか..ありがとう、簡単な構文エラーがあるに違いないと思いますが、Wh​​ere 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 に答える