私は現在SQL_CALC_FOUND_ROWS
、準備されたステートメントで実装する方法について頭を悩ませています。
私はページネーションクラスを書いていますが、明らかにクエリに LIMIT を追加したいだけでなく、行の総数を調べたいと思っています。
問題のクラスの例を次に示します。
$query = "select SQL_CALC_FOUND_ROWS id,title,location,salary,employer from jobs where region=38 limit 0,3";
if($stmt = $connection->prepare($query)) {
$stmt->execute()or die($connection->error); //execute query
$stmt->bind_result($id,$title,$location,$salary,$employer,$image);
while($stmt->fetch()){
$jobs[$x]['id']=$id;
$jobs[$x]['title']=$title;
$jobs[$x]['location']=$location;
$jobs[$x]['salary']=$salary;
$jobs[$x]['employer']=$employer;
$jobs[$x]['image']=$image;
$x++;
}
$stmt->close();//close statement
}
SQL_CALC_FOUND_ROWS
実際の値を取得する方法について少し困惑していますか? 次のようなものを追加することを考えていました:
$stmt->store_result();
$count=$stmt->num_rows;
しかし、それは LIMIT に基づいた数を与えるだけなので、上記の例では、本来あるべき完全な 6 ではなく 3 になります。