Exemplo n.º 1
0
 public function fetchAll($where = '', $order = '', $limit = '', $paginated = '')
 {
     if ($paginated) {
         $select = new \Zend\Db\Sql\Select('hwi_product');
         if (is_array($where)) {
             $select->where($where);
         }
         if (is_array($order)) {
             foreach ($order as $key => $value) {
                 $select->order($value);
             }
         }
         $rs = new \Zend\Db\ResultSet\ResultSet();
         $rs->setArrayObjectPrototype(new product());
         $pageAdapter = new \Zend\Paginator\Adapter\DbSelect($select, $this->tableGateway->getAdapter(), $rs);
         $paginator = new \Zend\Paginator\Paginator($pageAdapter);
         return $paginator;
     }
     $resultSet = $this->tableGateway->select($where, $order, $limit);
     return $resultSet;
 }
Exemplo n.º 2
0
 /**
  * Get the most searched queries
  *
  * @param $from begin time
  * @param $to   end time
  *
  * @return associative array
  */
 public function getMostSearchedQueries($from = null, $to = null, $limit = 20)
 {
     $subSelect = $this->sql->select();
     $subSelect->columns(array('phrase' => 'value'));
     $subSelect->join(array('noresults' => 'user_stats_fields'), 'user_stats_fields.id = noresults.id', array());
     $subSelect->join(array('user_stats' => 'user_stats'), 'user_stats.id = user_stats_fields.id', array('session' => 'session'));
     if ($from && $to) {
         $format = "Y-m-d H:i:s";
         $from = date($format, $from);
         $to = date($format, $to);
         $subSelect->where->greaterThan('user_stats.datestamp', $from);
         $subSelect->where->lessThan('user_stats.datestamp', $to);
     }
     $subSelect->where->equalTo('user_stats_fields.field', 'phrase');
     $subSelect->where->equalTo('noresults.field', 'noresults');
     $subSelect->where->EqualTo('noresults.value', 'false');
     $subSelect->where->notEqualTo('user_stats_fields.value', '');
     $subSelect->group(array('phrase', 'session'));
     $select = new \Zend\Db\Sql\Select();
     $select->columns(array('query' => 'phrase', 'count' => new Expression("COUNT(*)")));
     $select->from(array('phrase' => $subSelect));
     $select->group(array('phrase'));
     $select->order('count desc');
     $select->limit($limit);
     $statement = $this->sql->prepareStatementForSqlObject($select);
     $result = $statement->execute();
     return $result;
 }