2012-02-03 76 views
0

是否有另一種方法來計算查詢返回的行數。下面的代碼返回1,即使沒有返回結果(我正在處理ZEND)。函數計算zend中的查詢結果

$this->view->overdue_query = $overdue_query->fetchAll(); 
/*Get overdue count */ 
$this->view->overdue_count = count($overdue_query); 
+0

是否有像mysql_num_rows這樣的函數? – Micheal 2012-02-03 20:06:43

+0

我很好奇var_dump($ overdue_query)返回的輸出。我想你應該從fetchAll()獲得一個普通的數組。你可以請張貼嗎? – drew010 2012-02-03 20:40:34

+0

@ drew010 fetchAll()返回一個Zend_Db_Table_Rows對象。您可以使用 - > toArray()將其轉換爲數組。 – Iznogood 2012-02-03 21:53:34

回答

0
$this->view->overdue_query = $overdue_query->fetchAll(); 
/*Get overdue count */ 
$this->view->overdue_count = count($overdue_query);//you are doing count on 
//your query and not the result of fetchAll 

它應該是代替

$this->view->overdue_query = $overdue_query->fetchAll(); 
/*Get overdue count */ 
$this->view->overdue_count = count($this->view->overdue_query); 

//unless you're getting overdue_count in your view then you would do : 
$count = count($this->overdue_query); 
0

據我所知,這應該工作,我一直這樣做。

$results = $overdue_query->fetchAll(); 
echo count($results); 

如果它在你的代碼中沒有其他的東西是錯的,那麼它很難說。 也嘗試toArray()來查看它是否改變任何東西。

$results = $overdue_query->fetchAll()->toArray(); 
echo count($results); 

Documentation

0

我與MMC,您正試圖計算錯誤的事情達成一致。 count($ this-> view-> overdue_query);應該做的伎倆。