Странно, но это работает:
$oSelect = $oTable->select()
->where(...)
->order(...)
->limit(...)
$oRows = $oTable->fetchAll($oSelect);
// these two lines are the solution: we simply run the query again!
$db->query($oSelect);
$iTotal = $db->fetchOne("select FOUND_ROWS()");
Я должен упомянуть, что я использую эту строку в моем конфигурационном файле:
db.profiler.enabled = true
вот код для идей перьев; Однако это не работает:
$query = $db->select()
->from('your_table', array(new Zend_Db_Expr('SQL_CALC_FOUND_ROWS id as fake_column'),'*'))
->where(...)
->limit(0, 10);
$db->query($query);
$iCount = $db->fetchOne('select FOUND_ROWS()');
также взгляните на http://old.nabble.com/RE:-CALC_FOUND_ROWS-vs.-count%28*%29-p16761518.html