Php – Getting total number of rows using SQL_CALC_FOUND_ROWS in Zend DB Table Select

MySQLPHPsqlzend-framework

Is there a way to get the total number of rows in Zend db select like with using SQL_CALC_FOUND_ROWS in a regular mysql query. I haven't been able to find a similar functionality for this apart from running the same query without the limit clause.

Best Answer

$db->select()
   ->from($tableName, array(
       new Zend_Db_Expr('SQL_CALC_FOUND_ROWS id'), 
       'name', 
       'price'
   ));

You could also try replacing all cols with COUNT(*) and running the query second time. It may actually be more efficient (even if it's counter-intuitive). This was the case for my app.

You can do it like this:

$select->reset('cols')->reset('limit')->cols('COUNT(*)'); //there is a constant for the 'cols' in Select class
$db->query($select);