大量のデータを含むテーブルがあるので、それを取得して一度に 1 ページずつ表示します (私の要求は長いので、テーブル全体で実行する方法はありません)。
しかし、結果をページ分割したいので、テーブル内の要素の総数を知る必要があります。
同じリクエストでa を実行するCOUNT(*)
と、選択した要素の数 (私の場合は 10) を取得します。
2 番目のリクエストでテーブルに対して を実行するCOUNT(*)
と、メイン クエリに where、join、および having 句があるため、結果が間違っている可能性があります。
最もクリーンな方法は次のとおりです。
- データを取得する
- この特定のリクエストのテーブル内の要素の最大数を知る
1 つの解決策は、 Mysql 関数 FOUND_ROWSを使用しているようです。
mysql_query は一度に 1 つのクエリを実行するため、これを試しました: (ここで取得)
$query = 'SELECT SQL_CALC_FOUND_ROWS * FROM Users';
$result = mysql_query($query);
// fetching the results ...
$query = 'SELECT FOUND_ROWS()';
$ result = mysql_query($query);
// debug
while ($row = mysql_fetch_row($result)) {
print_r($row);
}
そして、結果が0の配列を取得しました:
Array ( [0] => 0 )
私のクエリは結果を返しますが。
私のアプローチの何が問題になっていますか? より良い解決策はありますか?