/** * 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; }