Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29305078
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类:

2009-07-23 14:16:14

使用SMARTY进行分页遇到问题的人们,将从这里学到如何更好的在SMARTY中进行分页....首先必需说明的是:这篇教程是我从别的教程改过来的, 所以不能说是完全原创,但我把它说明的更加详细,以及提供了完备的示例..你将很清楚的理解里的每个变量的作用及其使用方法....希望这篇文字对对你产 生帮助....如果,下面的文字真的对你产生了帮助,别忘了"呱唧呱唧"(鼓掌哦)!!!
CODE:
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.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
());
$iemysql_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 == 
) {
$pager_StartNum 0
;
//如果当前页不是第一页,则记录是从当前的页数减去1乘以每页的显示记录数开始的 
} else {
$pager_StartNum = ($pager_PageID -1) * $pager_Size
;

//当前页的结束记录数是起始记录数加上每页的显示记录数
$pager_EndNum $pager_StartNum $pager_Size
;
//如果当前页是第一页,且总页数大于1
if ($pager_PageID == && $pager_Number>1
) {
//第一页
$pager_Links "上一页 | 下一页"
;
//否则如果当前页是最后一页,且总页数大于1 
} elseif($pager_PageID == $pager_Number && $pager_Number>1
) {
//最后一页
$pager_Links "上一页 | 下一页"
;
//否则如果当前页不是第一页,且当前页小于等于最后一页 
} elseif ($pager_PageID && $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'
); 
?> 
阅读(1166) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~