SMARTY分页详解

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 使用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.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_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'); 
?>
本文转摘自『IT学习者』 http://www.itlearner.com/article/2006/3583.shtml
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
9月前
Vue3手写分页在分页的基础上用到Pagination 分页组件
Vue3手写分页在分页的基础上用到Pagination 分页组件
52 0
|
PHP
PHP:laravel自定义分页page查询方法
PHP:laravel自定义分页page查询方法
88 0
|
人工智能 算法 PHP
解决thinkphp中paginate分页排版竖着的问题
愿自己还有你在未来的日子,保持学习,保持进步,保持热爱,奔赴山海!愿自己还有你在未来的日子,保持学习,保持进步,保持热爱,奔赴山海!❤️❤️❤️ 最后,希望我的这篇文章能对你的有所帮助!❤️❤️❤️ 最后,希望我的这篇文章能对你的有所帮助!❤️❤️❤️ 最后,希望我的这篇文章能对你的有所帮助!❤️❤️❤️ 最后,希望我的这篇文章能对你的有所帮助!
解决thinkphp中paginate分页排版竖着的问题
|
前端开发 PHP
Laravel8 分页样式问题
一、问题:分页样式只显示上一页和下一页,中间的页码不显示
|
PHP
在smarty模板中使用PHP函数的方法
sample1 复制代码 代码如下: 那如果使用像iconv这样的有三个参数的函数该怎么写呢?如果写成: sample 2 复制代码 代码如下: 一执行就会发现显示error信息。 因此研究一下就会发现,起始在smarty模板页的套用函数用法中,以smaple 1来说,trim的前面$Row->colname其实就是trim的第一个参数,中间用|这个符号串接; 那假设要使用像iconv有三个参数的函数的话,就要写成: sample 3 复制代码 代码如下: 也就是 函数第一个参数|函数:第二个参数:第三个参数。
1183 0
|
Java 数据库连接 前端开发
Jsp刷新分页模板,很全
1.用来实现上一页下一页,我直接写到查询页面上 a { color: #555555; text-decoration: none; ...
1376 0
|
JavaScript 前端开发 PHP
|
PHP
thinkphp分页
//分页函数,可放在公共函数中 function getPage($count,$num){ $Page = new \Think\Page($count,$num);// 实例化分页类 传入总记录数和每页显示的记录数(25) $Page->setConfig(...
1050 0

热门文章

最新文章