2010-10-23 26 views

回答

2

因爲沒有其他人有更好的提供,我會建議在ZF論壇上看到this post。從2008年開始,ZF可能會從此升級。

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

您也可以嘗試用COUNT(*)替換所有的cols和運行查詢第二次。它可能實際上更有效率(即使它是反直覺的)。這是我的應用程序的情況。

你可以這樣說:

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

使用此方法,如果還需要

$rows = $db->select()->from('foo')->query()->fetchAll(); 

    echo 'Total number of rows found : ' . count($rows); 

如果你只需要行的總數的計數,然後

行內數據
$count = $db->select()->from('foo','COUNT(*)')->query()->fetchColumn(); 
+0

雖然它的工作效率非常低,特別是如果你使用MySQL。使用calc_rows可以保存大量數據的檢索,以找出有多少條目沒有任何分頁限制。爲了使它獨立於數據庫,你也可以實現一個單獨的COUNT查詢。 – 2011-09-12 11:33:39

+0

有效的方式添加我雖然需要總行數 – 2011-09-12 11:45:03