Esempio n. 1
0
 /**
  * Internal function to calculate the paging stats for a paged select
  *
  * @param DaoQuery $qry     The query that we are running
  * @param array    $results The result that we've got from this DaoQuery
  *
  * @return array The page stats
  */
 private static function _calculatePageStats(DaoQuery $qry, $results)
 {
     if ($qry->isPaged()) {
         $sql = 'select found_rows()';
         $stmt = self::$_db->prepare($sql);
         if (!$stmt->execute()) {
             return;
         }
         $my = $stmt->fetch(PDO::FETCH_NUM);
         self::$_pageStats['totalRows'] = (int) $my[0];
         list(self::$_pageStats['pageNumber'], self::$_pageStats['pageSize']) = $qry->getPageStats();
         self::$_pageStats['totalPages'] = (int) ceil(self::$_pageStats['totalRows'] / self::$_pageStats['pageSize']);
     } else {
         self::$_pageStats['pageNumber'] = null;
         self::$_pageStats['totalRows'] = null;
         self::$_pageStats['totalPages'] = null;
         if (is_array($results)) {
             self::$_pageStats['totalPages'] = 1;
             self::$_pageStats['totalRows'] = self::$_pageStats['pageSize'] = count($results);
         }
     }
     return self::$_pageStats;
 }