/*
*
* PDO Database Wrapper of PEAR Pager
*
* @param resource $db The PDO object
* @param string $query SQL Statement
* @param array $pager_options Options of pager
* @param boolean $disabled Whether use pager,true will use ,or not use
* @param int $fetchMode
*/
function Pager_Wrapper_PDO(&$db, $query, $pager_options = array(), $disabled = false, $fetchMode = PDO:: FETCH_ASSOC){
if (!array_key_exists('totalItems', $pager_options )) {
if ($countQuery = rewriteCountQuery($query )) {
$stmt = $db->prepare($countQuery );
$stmt-> execute();
$totalItems = $stmt-> fetchColumn();
}else {
$stmt = $db->prepare($query );
$stmt-> execute();
$rows = $stmt->fetchAll(PDO:: FETCH_COLUMN);
$totalItems = count($rows );
}
$pager_options['totalItems'] = $totalItems ;
}
require_once 'Pager/Pager.php' ;
$pager = Pager::factory($pager_options );
$page = array ();
$page['links'] = $pager-> links;
$page['totalItems'] = $pager_options['totalItems' ];
$page['page_numbers'] = array (
'current' => $pager->getCurrentPageID(),
'total' => $pager-> numPages()
);
list($page['from'], $page['to']) = $pager-> getOffsetByPageId();
$page['limit'] = $page['to'] - $page['from'] +1 ;
// fix offset
// limit 1,10 can not retrive the first record of result set.
$page['from'] = $page['from'] - 1 ;
if (!$disabled ) {
$query .= 'LIMIT ' . $page['from'] . ', ' . $pager_options['perPage' ];
}
// var_dump($query);
$stmt = $db->prepare($query );
$stmt-> execute();
$page['data'] = $stmt->fetchAll($fetchMode );
if ($disabled ) {
$page['links'] = '' ;
$page['page_numbers'] = array (
'current' => 1,
'total' => 1
);
}
// var_dump($pager);
return $page ;
}
* PDO Database Wrapper of PEAR Pager
*
* @param resource $db The PDO object
* @param string $query SQL Statement
* @param array $pager_options Options of pager
* @param boolean $disabled Whether use pager,true will use ,or not use
* @param int $fetchMode
*/
function Pager_Wrapper_PDO(&$db, $query, $pager_options = array(), $disabled = false, $fetchMode = PDO:: FETCH_ASSOC){
if (!array_key_exists('totalItems', $pager_options )) {
if ($countQuery = rewriteCountQuery($query )) {
$stmt = $db->prepare($countQuery );
$stmt-> execute();
$totalItems = $stmt-> fetchColumn();
}else {
$stmt = $db->prepare($query );
$stmt-> execute();
$rows = $stmt->fetchAll(PDO:: FETCH_COLUMN);
$totalItems = count($rows );
}
$pager_options['totalItems'] = $totalItems ;
}
require_once 'Pager/Pager.php' ;
$pager = Pager::factory($pager_options );
$page = array ();
$page['links'] = $pager-> links;
$page['totalItems'] = $pager_options['totalItems' ];
$page['page_numbers'] = array (
'current' => $pager->getCurrentPageID(),
'total' => $pager-> numPages()
);
list($page['from'], $page['to']) = $pager-> getOffsetByPageId();
$page['limit'] = $page['to'] - $page['from'] +1 ;
// fix offset
// limit 1,10 can not retrive the first record of result set.
$page['from'] = $page['from'] - 1 ;
if (!$disabled ) {
$query .= 'LIMIT ' . $page['from'] . ', ' . $pager_options['perPage' ];
}
// var_dump($query);
$stmt = $db->prepare($query );
$stmt-> execute();
$page['data'] = $stmt->fetchAll($fetchMode );
if ($disabled ) {
$page['links'] = '' ;
$page['page_numbers'] = array (
'current' => 1,
'total' => 1
);
}
// var_dump($pager);
return $page ;
}