How to get the total found rows without considering the limit in PDO?
MySQL only AFAIK:
$r=$db->prepare("SELECT SQL_CALC_FOUND_ROWS * FROM locations WHERE area=:area LIMIT $start,10");
$r->execute($fields);
var_dump($r->fetchAll());
var_dump($db->query('SELECT FOUND_ROWS();')->fetch(PDO::FETCH_COLUMN));
About as heavy for the database server as querying a single time for all the records of course. For non-MySQL use, this query is of course better then getting the rowcount of all the records:
$r=$db->prepare("SELECT COUNT(*) FROM locations WHERE area=:area");
$r->execute($fields);
$count = $r->fetch(PDO::FETCH_COLUMN);
echo $count;
How to get total amount of rows while using limit when using PDO prepared statements?
You can use the SQL_CALC_FOUND_ROWS
command to tell MySQL to return the total of the matching records
$sql = "SELECT SQL_CALC_FOUND_ROWS * FROM `tab`
WHERE `condition` = :condition
LIMIT $page_size OFFSET $offset";
To get the total rows found you can run this query
SELECT FOUND_ROWS()
However, it is often faster to execute 2 separate queries than using SQL_CALC_FOUND_ROWS
. Here is a benchmark to explain
you can read more about this here
PHP PDO SQL_CALC_FOUND_ROWS / FOUND_ROWS() strange issue
Well looks like the culprit was New Relic. I disabled the daemon quick to see if that was the issue and counts are perfect again.
Found my answer here: PHP PDO returning inconsistent results for SELECT FOUND_ROWS()
I decided to wrap my queries with a single space at the beginning and end (only beginning is necessary). Note that "\n" characters work as well. This way I didn't have to mess with the New Relic configuration.
Thanks New Relic!
Find total number of results in mySQL query with offset+limit
Take a look at SQL_CALC_FOUND_ROWS
count all items in table mysql plus get record
Is this what you're looking for?
SELECT * , CONCAT('', (SELECT COUNT(*) FROM memberFileReports)) AS total
FROM memberFileReports LIMIT 0,5
EDIT 1: Note that the 'total' will be a string
EDIT 2: As I understand , you want to get the total rows in the table, but only select 5 of them (as example)
EDIT 3: caps... and misspell
How to get the SQL_CALC_FOUND_ROWS value using prepared statements?
Managed to figure it out, i will detail my answer below for anyone whos interested in future.
Original Code
$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
}
Updated Code
$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++;
}
//get total number of rows.
$query="SELECT FOUND_ROWS()";
$stmt = $connection->prepare($query);
$stmt->execute();
$stmt->bind_result($num);
while($stmt->fetch()){
$count=$num;
}
$stmt->close();//close statement
}
Probably could do it better another way but couldn't seem to find any good examples anywhere online and this works!
Related Topics
Merge Two Png Images with PHP Gd Library
File_Get_Contents Is Not Working for Some Url
PHP JSON_Encode and JavaScript Functions
Implementing "Update If Exists" in Doctrine Orm
Utf-8 Characters in Preg_Match_All (Php)
Differences Between a While Loop and a for Loop in PHP
Pass Base64 Jpeg Image to Og:Image
How to Replace Some Characters with Asterisks
Move Value in PHP Array to the Beginning of the Array
Php: How to Load the Content of a Web Page into a Variable
How to Destroy Session with Browser Closing in Codeigniter
Validate That Input String Does Not Exceed Word Limit
Display Zend_Form_Element_Radio on One Line
Nginx + PHP-Fpm 7.1 - 504 Gateway Time-Out
PHP Datetime::Createfromformat in 5.2
Creating a Secure File Hosting Server for PDFs
Is Auto-Initialization of Multi-Dimensional Hash Array Possible in Ruby, as It Is in PHP