#1 qiudong26
之前从没用过框架和模版,都是直接内嵌代码。这是我写的分页。分页的样式是: 首页 上一页 3 4 5 6 7 8 9 10 11 12 13 下一页 末页我想问的是,SP框架中那个smarty分页,可不可以像我写的这个分页一样,不管在哪个页面,最多显示11个分页,并且当前页在正中间?
不然留言太多的话,就不好看了。
不晓得<{section}>有没有什么输出参数可以实现。
$PageSize=5; //每页显示条数
$count=mysql_query("select ...from ....",$conn);
$nNumRows= mysql_num_rows($count); //总条数
if($nNumRows<=0){
echo '没有记录';
}
$MaxPage = (int)ceil($nNumRows/$PageSize); //最大页(总页数)=总条数/每页显示条数
if(!isset($page))
$page=1; //如果当前没有被赋值,则赋给1
$prevPage=$page-1; //上一页为当前页-1
$nextPage= $page+1; //下一页为当前页+1
if($prevPage<=0)
$prevPage=1; //如果上一页的值<=0,则重新赋给上一页为1
if($nextPage>$MaxPage)
$nextPage=$MaxPage; //如果下一页值>最大页,则重新赋给下一页为最大页
$lost=($page-1)*$PageSize; //定义offset,从第几条开始读取。
$gotb="select ... from ...limit $lost,$PageSize";
echo <<
PPP;
$middle=6; //中间页
$pmp=$middle*2-1; //在页面显示的最大页数
$job=$middle-1;
if($page<$middle){
if($MaxPage<=$pmp){
for ($p=1;$p<=$MaxPage;$p++){
echo '',"$p",' ' ;};
}
else{
for ($p=1;$p<=$pmp;$p++){
echo '',"$p",' ' ;};
};
}
else{
if($MaxPage>$pmp){
if($MaxPage>=$page+$job){
for ($p=$page-$job;$p<=$page+$job;$p++){
echo '',"$p",' ' ;
}
}
else{
for ($p=$MaxPage-$pmp;$p<=$MaxPage;$p++){
echo '',"$p",' ' ;
}
}
}
else{
for ($p=$page-$job;$p<=$MaxPage;$p++){
echo '',"$p",' ' ;
}
}
}
echo <<
DDD;
?>
2010-05-23 18:14:38