2013-05-06 3 views
0

Я новичок в рамках ZendZend Framework подсчитывать количество строк в MySQL Query

Я хочу, чтобы вычислить количество строк в моем запросе

это мой код:

$nm = new Zend_Db_Table('emp'); 
$row = $nm->fetchRow($nm->select()->where('id= ?', $a)); 
+0

fetchRow будет извлекать только одну строку –

+0

. Запрос count (*) может сделать это .or $ nm-> rowcount() –

ответ

0

да вы можете попробовать таким образом, чтобы получить общее количество строк, возвращаемых вашим запросом sql.

$select = $this->select(); 

$select->where('id= ?', $a); 

$result=$this->fetchAll($select); 

if(empty($result)){ 
    return false; 
}else{ 
     echo "Total number of users : -> ".count($result->toArray()); 
} 

дайте мне знать, если я могу вам помочь.

+0

Это хорошее решение, если вы хотите извлекать строки из базы данных, и вы хотите использовать их в буквенный код, и вы хотите подсчитать количество строк, возвращаемых базой данных. Обратите внимание, что это действительно плохая конструкция, если вы просто хотите напечатать количество строк, доступных в базе данных. На больших таблицах эта конструкция может вызвать фатальную ошибку памяти. Вместо этого используйте select count (*) из tableName, где id = idNumber. – MrD

0

Если вы тестируете наличие записи по первичному ключу, вы можете использовать $nm->find($a) и проверить любые результаты.

, если вы ожидаете, что результирующий набор будет маленьким, то вы можете сделать

$nm->fetchAll($nm->select()->where("id = ?", $a); 

Если вы ожидаете, результирующий набор, чтобы получить большие и все, что вы на самом деле после того, как это граф, то авторинга запрос, который запрашивает количество поля, вероятно, имеет смысл использовать, чтобы сохранить запрос от съедает много памяти сервера:

$row = $nm->getAdapter()->fetchRow("select count(*) as num_rows". 
     " from ".$nm->info(Zend_Db_Table_Row_Abstract::NAME). 
     " where ".$nm->getAdapter()->quoteInto("id = ?", $a)); 
echo "Users ".$row["num_rows"]; 
0

в Zend Framework 1, вы можете использовать count() функции в последнем запрос для получения общего количества строк в таблице.

Например:

$row = $nm->fetchAll($nm->select()->where('id = ?', $a))->count();

ПРИМЕЧАНИЕ: Это будет возвращать только общее количество строк в таблице. Вывод Integer.

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