public function testReturnsCorrectCountWithAutogeneratedQuery() { $expected = 500; $actual = $this->_adapter->count(); $this->assertEquals($expected, $actual); }
/** * Fetch data from Db end return records subset, full count records, success = true * @param Zend_Db_Select $select * @return array */ public function getData(Zend_Db_Select $select) { $adapter = new Zend_Paginator_Adapter_DbSelect($select); $result = array(); $result['data'] = $select->query()->fetchAll(); $result['total'] = $adapter->count(); $result['success'] = true; return $result; }
/** * Dot_Paginator constructor that sets the main parameters * If $page is 0 (zero), Zend_Paginator will not be called * @access public * @param Zend_Db_Select $select * @param int $page [optional] * @param int $resultsPerPage [optional] * @return Dot_Paginator */ public function __construct($select, $page = 0, $resultsPerPage = 0) { $this->db = Zend_Registry::get('database'); $this->_select = $select; $this->_currentPage = $page; $this->_itemCountPerPage = $resultsPerPage; $settings = Zend_Registry::get('settings'); if ($this->_currentPage > 0) { $adapter = new Zend_Paginator_Adapter_DbSelect($select); $this->_paginator = new Zend_Paginator($adapter); $this->_paginator->totalItems = $adapter->count(); // page range = the pages on the left + the pages on the right + the current page $this->_paginator->setPageRange($settings->paginationStep * 2 + 1); } }
public function testGroupByQueryOnEmptyTableReturnsRowCountZero() { $query = $this->_db->select()->from('test_empty')->order('number ASC')->limit(1000, 0); $adapter = new Zend_Paginator_Adapter_DbSelect($query); $this->assertEquals(0, $adapter->count()); }
/** * @group ZF-10704 */ public function testObjectSelectWithBind() { $select = $this->_db->select(); $select->from('test', array('number'))->where('number = ?')->distinct(true)->bind(array(250)); $adapter = new Zend_Paginator_Adapter_DbSelect($select); $this->assertEquals(1, $adapter->count()); $select->reset(Zend_Db_Select::DISTINCT); $select2 = clone $select; $select2->reset(Zend_Db_Select::WHERE)->where('number = 500'); $selectUnion = $this->_db->select()->bind(array(250)); $selectUnion->union(array($select, $select2)); $adapter = new Zend_Paginator_Adapter_DbSelect($selectUnion); $this->assertEquals(2, $adapter->count()); }
/** * @group ZF-4177 */ public function testSelectDistinctAllUsesRegularCountAll() { $query = $this->_db->select()->from('test')->distinct(); $adapter = new Zend_Paginator_Adapter_DbSelect($query); $this->assertEquals(500, $adapter->count()); }
/** * Returns the total number of rows in the result set. * * @return integer */ public function count() { if (null === $this->_count) { $this->_count = $this->_selectAdapter->count(); } return $this->_count; }
/** * Count interface implementation * @return int */ public function count() { if (null !== $this->_count) { return $this->_count; } // Why implement again what has already been done :) $pag = new \Zend_Paginator_Adapter_DbSelect($this->_select); $this->_count = $pag->count(); return $this->_count; }
/** * @group ZF-7127 */ public function testMultipleGroupSelect() { $select = $this->_db->select()->from('test')->group('testgroup')->group('number')->where('number > 250'); $adapter = new Zend_Paginator_Adapter_DbSelect($select); $expected = 'SELECT COUNT(1) AS "zend_paginator_row_count" FROM (SELECT "test".* FROM "test" WHERE (number > 250) GROUP BY "testgroup"' . ",\n\t" . '"number") AS "t"'; $this->assertEquals($expected, $adapter->getCountSelect()->__toString()); $this->assertEquals(250, $adapter->count()); }
/** * @group ZF-10884 */ public function testSetRowCountWithAlias() { $select = $this->_db->select(); $select->from('test', array(Zend_Paginator_Adapter_DbSelect::ROW_COUNT_COLUMN => new Zend_Db_Expr('COUNT(DISTINCT number)'))); $this->_db->setProfiler(true); $adapter = new Zend_Paginator_Adapter_DbSelect($this->_db->select()); $adapter->setRowCount($select); $adapter->count(); $expected = 'SELECT COUNT(DISTINCT number) AS "zend_paginator_row_count" FROM "test"'; $lastQuery = $this->_db->getProfiler()->getLastQueryProfile()->getQuery(); $this->assertEquals($expected, $lastQuery); }