Esempio n. 1
0
    public function testReturnsCorrectCountWithAutogeneratedQuery()
    {
        $expected = 500;
        $actual = $this->_adapter->count();

        $this->assertEquals($expected, $actual);
    }
Esempio n. 2
0
 /**
  * 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;
 }
Esempio n. 3
0
 /**
  * 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);
     }
 }
Esempio n. 4
0
 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());
 }
Esempio n. 6
0
 /**
  * @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());
 }
Esempio n. 7
0
 /**
  * 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;
 }
Esempio n. 8
0
 /**
  * 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;
 }
Esempio n. 9
0
 /**
  * @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());
 }
Esempio n. 10
0
 /**
  * @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);
 }