效果图:(未做CSS处理)
php页面:
<?php
require_once '../../../inc/smarty.inc.php';
require_once '../../../inc/common.inc.php';
require_once '../../../common/lib/page.class.php';
$smarty = new SmartyMistake;
$where = '1=1';
$table = 'mistake';
page($table,10,10,$where,true,false,'');
$dbh->setAttribute(PDO::ATTR_CASE,PDO::CASE_UPPER);
$aoptions = $dbh->query("SELECT * FROM {$table} WHERE {$where} LIMIT $start,10");
$aoptions->setFetchMode(PDO::FETCH_ASSOC);
$resultMistake = $aoptions->fetchAll();
$smarty->assign("result",$resultMistake);
$smarty->display('templates/mistake_list.html');
smarty模板页面:
<SPAN style="margin-left:250px;">共[{ff:$_page_var.total/}]条
第[{ff:$_page_var.currentPage/}]/[{ff:$_page_var.totalPage/}]页
{ff:if {ff:$_page_var.first/}/}{ff:$_page_var.first/}{ff:/if/}
{ff:if {ff:$_page_var.back/}/}{ff:$_page_var.back/}{ff:/if/}
{ff:if {ff:$_page_var.midPages/}/}{ff:$_page_var.midPages/}{ff:/if/}
{ff:if {ff:$_page_var.next/}/}{ff:$_page_var.next/}{ff:/if/}
{ff:if {ff:$_page_var.last/}/}{ff:$_page_var.last/}{ff:/if/}</SPAN>
PHP分页类:
<?php
/**
* 函数:内容列表分页
* 功能:支持PHP分页 Smarty分页 静态导航分页
* 已通过Mysql、Oracle 测试
* 时间:2011/01/07
* 原作者:欣然随风(在原版本的基础上进行了部分修改)
*
* 参数:
* @table -- 表名
* @pageSize -- 每页信息数
* @midPage -- 导航链接数量
* @where -- 查询条件
* @is_tpl -- 是否生成Smarty模板变量
* @is_htm -- 是否为静态地址
* @css -- 链接样式
*
* 全局变量:
* @dbh -- PDO对象
* @conn -- ADODB对象
* @smarty -- SMARTY对象
* @start -- 返回的LIMIT的开始下标
*/
function page($table,$pageSize,$midPage,$where,$is_tpl,$is_htm,$css=''){
global $dbh,$start;
// 分页开始
//PDO对象操作方式
$dbh->setAttribute(PDO::ATTR_CASE,PDO::CASE_UPPER);
$total = $dbh->query("SELECT COUNT(*) FROM {$table} WHERE {$where}");
$total->setFetchMode(PDO::FETCH_ASSOC);
$total2 = $total->fetch();
$totalRecord = $total2['COUNT(*)'];
$totalPage = ceil($totalRecord/$pageSize);
$currentPage=@$_REQUEST['page']+0;
if(!is_numeric($currentPage) || $currentPage < 1 || empty($currentPage) || $currentPage > $totalPage)
$currentPage=1;
// 设置地址
if($is_htm){
parse_str($_SERVER["QUERY_STRING"],$url);
unset($url['page']);
$url = urlencode(implode('-',$url));
$url = basename($_SERVER['SCRIPT_NAME'],'.php').'-'.$url.'-';
$start = ($currentPage-1)*$pageSize;
$back = $currentPage > 1 ? "<a href='{$url}".($currentPage-1).".html' class='{$css}'><u>上页</u></a> | ":"";
$next = $currentPage < $totalPage ? "| <a href='{$url}".($currentPage+1).".html' class='{$css}'><u>下页</u></a> ":"";
$first = $currentPage > 1 ? "<a href='{$url}1.html' class='{$css}'><u>首页</u></a> ":"";
$last = $currentPage < $totalPage ? "<a href='{$url}{$totalPage}.html' class='{$css}'><u>尾页</u></a>":"";
}else{
$url = preg_replace(
array("!(([&]|^)(page)[=]?([^&]+)?)|((([&]){2,})|(^[&])|([&]$))!",),
array(""),
$_SERVER["QUERY_STRING"]
);
$url.=($url != '' ? '&' : '').'page';
$start = ($currentPage-1)*$pageSize;
$back = $currentPage > 1?"<a href='?{$url}=".($currentPage-1)."' class='{$css}'><u>上页</u></a> | ":"";
$next = $currentPage < $totalPage ?"| <a href='?{$url}=".($currentPage+1)."' class='{$css}'><u>下页</u></a> ":"";
$first = $currentPage > 1?"<a href='?{$url}=1' class='{$css}'><u>首页</u></a> ":"";
$last = $currentPage < $totalPage?"<a href='?{$url}={$totalPage}' class='{$css}'><u>尾页</u></a>\n":"";
}
// 导航链接
$midPages = '';
$num = $currentPage-floor($midPage/2);
if($num > 0){
if(($totalPage-$num) < $midPage){
$tmp = $totalPage - $midPage;
$num = $tmp< 0 ? 1 : ++$tmp;
}
}else $num = 1;
for($i=1; $i<=$midPage;$i++,$num++){
if($num > $totalPage) break;
if($is_htm){
$midPages .= ($num == $currentPage) ? "<span class='word_b'>{$num}</span> ": "<a href='{$url}{$num}.html' class='{$css}'><u>{$num}</u></a> ";
}
else{
$midPages .= ($num == $currentPage) ? "<span class='word_b'>{$num}</span> ": "<a href='?{$url}={$num}' class='{$css}'><u>{$num}</u></a> ";
}
}
global $_page_var;
$_page_var['total'] = $totalRecord; // 总计
$_page_var['currentPage'] = $currentPage; // 当前页码
$_page_var['totalPage'] = $totalPage; // 总页数
$_page_var['back'] = $back; // 上一页
$_page_var['next'] = $next; // 下一页
$_page_var['first'] = $first; // 首页
$_page_var['last'] = $last; // 尾页
$_page_var['midPages'] = $midPages; // 中间页
$_page_var['url'] = $url; // 当前页地址
if($is_tpl){
global $smarty;
$smarty->assign('_page_var',$_page_var);
}
}
?>