加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

SMARTY分页详解

发布时间:2020-12-13 14:10:59 所属栏目:PHP教程 来源:网络整理
导读:使用SMARTY进行分页遇到问题的人们,将从这里学到如何更好的在SMARTY中进行分页....首先必需说明的是:这篇教程是我从别的教程改过来的,所以不能说是完全原创,但我把它说明的更加详细,以及提供了完备的示例..你将很清楚的理解里的每个变量的作用及其使用方法...
使用SMARTY进行分页遇到问题的人们,将从这里学到如何更好的在SMARTY中进行分页....首先必需说明的是:这篇教程是我从别的教程改过来的,所以不能说是完全原创,但我把它说明的更加详细,以及提供了完备的示例..你将很清楚的理解里的每个变量的作用及其使用方法....希望这篇文字对对你产生帮助....如果,下面的文字真的对你产生了帮助,别忘了"呱唧呱唧"(鼓掌哦)!!!
<?php
require_once('include/common.inc.php');//这里是个接口common.inc.php里面包函了一些常用到的函数类库以及SMARTY
include_once('header.php');//调用头部信息,SESSION的信息全都保存在这里,这样做的好处是几乎所有的页面都不需要在开头输入session_start();
$smarty?=?new?Smarty_Calvin;//调用这个对象
$smarty->caching?=?false;//不使用缓存
$swe?=?"SET?NAMES?gb2312;";//如果是使用MYSQL5的数据库的话,这样做是非常必要的。要不然极易出现乱码
mysql_query($swe);
//下面是数据库的关联查找,将得到数据库中的记录
$sqle?=?"SELECT?calvin.did,calvin.title,calvin.voidbulk,calvin.databulk,
calvin.place,calvin.price,calvin.line,calvin.explan,
calvin.identify,
idcof_extend.identify,idcof_extend.pid,idcof_extend.start,idcof_extend.end,idcof_extend.taxis
FROM?calvin,extend
WHERE?calvin.identify?=?idcof_extend.identify
AND?calvin.did?=?extend.pid
ORDER?BY?extend.taxis?DESC"
;?
$resulte?=?mysql_query($sqle)?or?die(mysql_error());
$ie=?mysql_num_rows($resulte);//得到结果集的数量
//把结果集存到SMARTY可以用的数组中
while(($rowe=mysql_fetch_array($resulte))?&&?$ie?>?0)
{
$arraye[]?=?array("dide"=>$rowe["did"],"titlee"=>$rowe["title"],"voidbulke"=>$rowe['voidbulk'],"databulke"=>$rowe['databulk'],
"placee"=>$rowe['place'],"linee"=>$rowe['line'],"pricee"=>$rowe["price"],"explane"=>cutstr($rowe["explan"],180));//cutstr这个函数是自定义的,从COMMON。INC。PHP而来
$ie--;
}
$smarty->assign('arraye',$arraye);//把数组指向模板
//下面的部分是本教程的重点。
//?get_template_vars返回一个指定的已赋值的模板变量的值
$smartyArr?=?$smarty->get_template_vars();
//print_R($smartyArr);
//记录总数,每页显示记录条数,总页数
$pager_Total?=?count($smartyArr);//总记录数
//echo?$pager_Total;
$pager_Size?=?10;//设定每页显示的记录数
$pager_Number?=?ceil($pager_Total/$pager_Size);//得到总页数,如果有小时就进一步取整
$pager_URL?=?"dummyhost.php?action=View";

//获得当前页的页数,从REQUEST获得
if(isset($_GET['pager_PageID'])&&?!empty($_GET['pager_PageID'])){
$pager_PageID?=?intval($_GET['pager_PageID']);
}else{
//如果是第一次访问,则设定当前页为第一页
$pager_PageID?=?1;
}?

//每页的起,始记录数
//如果当前页是第一页,则记录是从第0条记录开始的
if?($pager_PageID?==?1?)?{
$pager_StartNum?=?0;
//如果当前页不是第一页,则记录是从当前的页数减去1乘以每页的显示记录数开始的?
}?else?{
$pager_StartNum?=?($pager_PageID?-1)?*?$pager_Size;
}?
//当前页的结束记录数是起始记录数加上每页的显示记录数
$pager_EndNum?=?$pager_StartNum?+?$pager_Size;
//如果当前页是第一页,且总页数大于1
if?($pager_PageID?==?1?&&?$pager_Number>1)?{
//第一页
$pager_Links?=?"上一页?|?下一页";
//否则如果当前页是最后一页,且总页数大于1?
}?elseif($pager_PageID?==?$pager_Number?&&?$pager_Number>1)?{
//最后一页
$pager_Links?=?"上一页?|?下一页";
//否则如果当前页不是第一页,且当前页小于等于最后一页?
}?elseif?($pager_PageID?>?1?&&?$pager_PageID?<=?$pager_Number)?{
//中间
$pager_Links?=?"上一页?|?下一页";
//否则
}?else?{
$pager_Links?=?"上一页?|?下一页";
}

$smarty->assign('search','dummyhost_search.php');?
include_once(
'dummyhost_ad.php');

$smarty->assign('pager_Total',$pager_Total);?
$smarty->assign('pager_StartNum',$pager_StartNum);
$smarty->assign('pager_EndNum',$pager_EndNum);
$smarty->assign('pager_Links',$pager_Links);
$smarty->display("dummyhost.tpl");?
include_once(
'footer.php');?
?>?


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读