SMARTY分页详解,希望听到掌声!!
时间:2006-05-07
来源:互联网
PHP代码:
<?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());
$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 = "上一页 | <a href=".$pager_URL."&pager_PageID=".($pager_PageID+1).">下一页</a>";
//否则如果当前页是最后一页,且总页数大于1
} elseif($pager_PageID == $pager_Number && $pager_Number>1) {
//最后一页
$pager_Links = "<a href=".$pager_URL."&pager_PageID=".($pager_PageID-1).">上一页</a> | 下一页";
//否则如果当前页不是第一页,且当前页小于等于最后一页
} elseif ($pager_PageID > 1 && $pager_PageID <= $pager_Number) {
//中间
$pager_Links = "<a href=".$pager_URL."&pager_PageID=".($pager_PageID-1).">上一页</a> | <a href=".$pager_URL."&pager_PageID=".($pager_PageID+1).">下一页</a>";
//否则
} 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');
?>
[ 本帖最后由 帅的不能再输啦 于 2006-5-7 16:00 编辑 ]
作者: 帅的不能再输啦 发布时间: 2006-05-07
我来顶下楼主
作者: fengyun 发布时间: 2006-05-07
作者: fakir 发布时间: 2006-05-07
不过偶不会smarty,努力学习!
作者: 笨猫 发布时间: 2006-05-07
作者: 帅的不能再输啦 发布时间: 2006-05-07
作者: seraph 发布时间: 2006-05-08
作者: yustar 发布时间: 2006-05-08
作者: xiaojia 发布时间: 2006-05-08
作者: pyang2005 发布时间: 2006-05-08
作者: liumingl 发布时间: 2006-05-08
期待 帅的不能再输啦 (雪悟) 的tpl部分啊...
作者: pyang2005 发布时间: 2006-05-08
作者: Phzzy 发布时间: 2006-05-08
{if ($smarty.section.list.dummyhost >= $pager_StartNum )&& ($smarty.section.list.dummyhost <= $pager_EndNum )}
<tr bgcolor="#ffffff">
<td width="40%">标题:<a href=article.php?did={$array
-
.did}>{$array
-
.title}</a><br>
<a href=article.php?did={$array
-
.did}>{$array
-
.explan}</a></td>
<td>{$array
-
.voidbulk}</td>
<td>{$array
-
.databulk}</td>
<td>{$array
-
.place}</td>
<td>{$array
-
.line}</td>
<td>{$array
-
.price}</td>
</tr>
{/if}
{/section}
</table>
<br>
<div align=right><font color="#000000">{$pager_Links}</font></div>
<br>
[ 本帖最后由 帅的不能再输啦 于 2006-5-8 13:21 编辑 ]
作者: 帅的不能再输啦 发布时间: 2006-05-08
但常用SmartyPaginate,lz不要笑我懒啊,这可是纯面向对象的,而且功能贼强
作者: xiaoqin_007 发布时间: 2006-05-08
作者: Per 发布时间: 2006-05-08
作者: MySQL 发布时间: 2006-05-08
作者: define_zhang 发布时间: 2006-05-08
作者: 马路守护者 发布时间: 2006-05-10
作者: e_yangrz 发布时间: 2006-05-11
作者: zlmnjy 发布时间: 2006-05-15
作者: szy_session1987 发布时间: 2006-05-15
顶了
作者: DH 发布时间: 2006-05-30
(我是菜鸟,高手末砸)
作者: machine_马 发布时间: 2006-05-30
作者: wyg27 发布时间: 2006-06-02
作者: asdf93945 发布时间: 2006-08-08
为版主鼓掌。
作者: weidaosong 发布时间: 2006-08-08
作者: forest 发布时间: 2006-08-11
作者: hobbs136 发布时间: 2006-08-11
引用:
原帖由 hobbs136 于 2006-8-11 13:11 发表恕我直言,这个分页我觉得没有我写的好,请查看我(hobbs136)的文章,我直接用smarty模板来写分页。我的更能体现内容与表现分离的思想。
作者: Per 发布时间: 2006-08-14
正在学smarty:)
作者: crab68 发布时间: 2006-09-14
作者: cheerfans 发布时间: 2006-09-16
作者: scorpion 发布时间: 2006-09-24
作者: tingoooo 发布时间: 2006-10-20
挂瓜
作者: laopi 发布时间: 2006-10-24
作者: binzi 发布时间: 2006-10-24
作者: kylingood 发布时间: 2007-07-18
作者: freshcn 发布时间: 2007-09-01
感谢粉丝们的热力追捧。。
朕谢谢您了。。。
作者: 帅的不能再输啦 发布时间: 2007-09-01
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28