Hiện tại tôi đang gãi đầu về cách triển khai SQL_CALC_FOUND_ROWS với các câu lệnh đã chuẩn bị.Báo cáo MySQLi/Chuẩn bị & SQL_CALC_FOUND_ROWS
Tôi đang viết một lớp phân trang và rõ ràng là tôi muốn thêm LIMIT vào truy vấn nhưng cũng tìm thấy tổng số hàng sẽ là bao nhiêu.
Đây là ví dụ từ lớp học được đề cập.
$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
}
Tôi hơi bối rối về cách lấy giá trị thực của SQL_CALC_FOUND_ROWS? Tôi đã nghĩ thêm vào một cái gì đó như:
$stmt->store_result();
$count=$stmt->num_rows;
Nhưng điều đó chỉ đưa ra một số dựa trên LIMIT, vì vậy trong ví dụ trên, số 3 của nó thay vì toàn bộ 6 mà nó cần phải có.
Hy vọng điều đó có ý nghĩa.
Ok, tôi có kể từ khi phát hiện ra tôi cần phải sử dụng SELECT FOUND_ROWS() nhưng im vẫn không chắc chắn làm thế nào để thực hiện điều này? Tôi có cần chạy nó như một truy vấn hoàn toàn mới không? – cosmicsafari