2012-02-03 2 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

+0

Мне любопытно, что возвращает результат 'var_dump ($ overdue_query)'. Я думаю, вы должны получить простой массив из fetchAll(). Не могли бы вы разместить это? – drew010

+0

@ drew010 fetchAll() возвращает объект Zend_Db_Table_Rows. Вы можете преобразовать его в массив с помощью -> toArray(). – Iznogood

ответ

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); должен сделать трюк.

Смежные вопросы