打造最大的网络营销知识与推广的信息化航母

进入论坛 | 会员注册 | 会员登陆 |
首页 >> php >> php进阶教程 >> SMARTY分页详解正文

SMARTY分页详解

来源:it我领先 发布时间:2010-04-03               浏览次数:133 进入论坛社区
使用SMARTY进行分页遇到问题的人们,将从这里学到如何更好的在SMARTY中进行分页....首先必需说明的是:这篇教程是我从别的教程改过来的, 所以不能说是完全原创,但我把它说明的更加详细,以及提供了完备的示例..你将很清楚的理解里的每个变量的作用及其使用方法....希望这篇文字对对你产 生帮助....如果,下面的文字真的对你产生了帮助,别忘了双引号呱唧呱唧双引号(鼓掌哦)!!! <?php
require_once(单引号include/common.inc.php单引号);//这里是个接口common.inc.php里面包函了一些常用到的函数类库以及SMARTY
include_once(单引号header.php单引号);//调用头部信息,SESSION的信息全都保存在这里,这样做的好处是几乎所有的页面都不需要在开头输入session_start();
$smarty=newSmarty_Calvin;//调用这个对象
$smarty->caching=false;//不使用缓存
$swe=双引号SETNAMESgb2312;双引号;//如果是使用MYSQL5的数据库的话,这样做是非常必要的。要不然极易出现乱码
mysql_query($swe);
//下面是数据库的关联查找,将得到数据库中的记录
$sqle=双引号SELECTcalvin.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.pid,idcof_extend.start,idcof_extend.end,idcof_extend.taxis
FROMcalvin,extend
WHEREcalvin.identify=idcof_extend.identify
ANDcalvin.did=extend.pid
ORDERBYextend.taxisDESC双引号;
$resulte=mysql_query($sqle)ordie(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单引号);
?>
文章来源:http://it503.com/detail.PHP
添加收藏到:

关键词:SMARTY分页详解,php
联系我们 | 关于我们 | rss订阅 | 网络社区 | 网站帮助 | 网站地图
Copyright(C) 2006-2007 it503 All Rights Reserved
本站如有转载或引用的文章涉及版权问题请速与我们联系 由于将本站资源用于商业用途而引起的纠纷,本站不负任何责任。
冀ICP备07500673号