Şu anda hazırladığım ifadelerle SQL_CALC_FOUND_ROWS'yi nasıl uygulayacağım konusunda kafamı çiziyorum.MySQLi/Prepared Statements & SQL_CALC_FOUND_ROWS
Bir pagination sınıfı yazıyorum ve açıkçası ben soruna LIMIT eklemek istiyorum ama aynı zamanda toplam satır sayısı ne olacağını bulmak.
Bu, söz konusu sınıftan bir örnek. Biraz olarak stumped
$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
}
nasıl SQL_CALC_FOUND_ROWS gerçek değerini almak için? Ben böyle bir şey ekleyerek düşünmüştü:
$stmt->store_result();
$count=$stmt->num_rows;
Fakat yukarıdaki örnekte onun 3 ziyade olması gerektiğini tam 6'da böylece yalnızca LIMIT dayalı bir numara verir.
Bunun mantıklı olmasını umuyorum.
Tamam, SELECT FOUND_ROWS() yöntemini kullanmam gerektiğini öğrendim, ancak bunu nasıl uygulayacağınızdan hala emin değilim? Tamamen yeni bir sorgu gibi çalıştırmam gerekiyor mu? – cosmicsafari