`
zhangchibang
  • 浏览: 348210 次
社区版块
存档分类
最新评论

SMARTY分页详解

    博客分类:
  • PHP
阅读更多

今天写Smarty,用到分页函数时出现了问题,于是乎,百度上搜了出来大家参考一下!

SMARTY分页详解:
使用SMARTY进行分页遇到问题的人们,将从这里学到如何更好的在SMARTY中进行分页....首先必需说明的是:这篇教程是我从别的教程改过来的, 所以不能说是完全原创,但我把它说明的更加详细,以及提供了完备的示例..你将很清楚的理解里的每个变量的作用及其使用方法....希望这篇文字对对你产 生帮助....如果,下面的文字真的对你产生了帮助,别忘了"呱唧呱唧"(鼓掌哦)!!!


PHP:[Copy to clipboard]
<?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"=& gt;$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& gt; | <a href=".$pager_URL."&pager_PageID=".($pager_PageID+1).">下一页</a& gt;";
    //否则
    } 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'');
?>

分享到:
评论

相关推荐

    PHP、Smarty与jQuery Ajax 分页插件jquery.pager.js的使用

    ### PHP、Smarty与jQuery Ajax 分页插件jquery.pager.js的使用详解 #### 一、引言 随着互联网技术的不断发展,用户对于网页交互性的需求越来越高。为了提升用户体验,Ajax技术逐渐成为一种不可或缺的技术手段。它...

    smart 分页

    ### Smart分页技术详解 #### 一、简介 在PHP开发中,为了提高用户体验和减少服务器负担,分页是一项常用的技术。Smart分页是基于PHP模板引擎Smarty的一种分页实现方式,通过结合PHP代码和Smarty模板语法来实现数据...

    PHP+Smarty做的留言板

    【PHP+Smarty留言板详解】 PHP和Smarty是一种常见的Web开发组合,用于构建动态网站。PHP作为后端脚本语言,处理服务器端逻辑,而Smarty则是一个模板引擎,将业务逻辑与前端展示分离,使得代码更加清晰易维护。在这...

    PHP模板引擎Smarty内建函数section,sectionelse用法详解

    例如,如果我们要在网页上展示数据库查询结果,并且需要对数据进行分页显示,使用section可以非常方便地实现: ```smarty 姓名 电子邮件 {section name=user loop=$users start=0 step=1 max=10} &lt;td&gt;&lt;{$users...

    PHP100_PHPnew新闻系统

    在这个系统中,核心组件包括Smarty模板引擎、MySQL数据库操作类以及分页功能,这些都是Web开发中不可或缺的基础元素。 **1. Smarty模板引擎** Smarty是PHP领域内广泛使用的模板引擎,它的主要作用是将业务逻辑与...

    (全)传智播客PHP就业班视频完整课程

    10-20 8 smarty分页技术 10-20 9 10-22 1 ajax介绍 无刷新验证用户名 10-22 2 ajax如何处理xml格式返回数据 10-22 3 json 10-22 4 ajax如何处理json格式返回数据 10-22 5 ajax应用 省市联动 10-22 6 ajax应用 黄金...

    史上最全韩顺平传智播客PHP就业班视频,10月份全集

    10-20 8 smarty分页技术 10-20 9 10-22 1 ajax介绍 无刷新验证用户名 10-22 2 ajax如何处理xml格式返回数据 10-22 3 json 10-22 4 ajax如何处理json格式返回数据 10-22 5 ajax应用 省市联动 10-22 6 ajax应用 黄金...

    韩顺平PHP JS JQUERY 所有视频下载种子 货真价实

    10-20 8 smarty分页技术 10-20 9 10-22 1 ajax介绍 无刷新验证用户名 10-22 2 ajax如何处理xml格式返回数据 10-22 3 json 10-22 4 ajax如何处理json格式返回数据 10-22 5 ajax应用 省市联动 10-22 6 ajax应用 黄金...

    史上最全传智播客PHP就业班视频课,8月份视频

    10-20 8 smarty分页技术 10-20 9 10-22 1 ajax介绍 无刷新验证用户名 10-22 2 ajax如何处理xml格式返回数据 10-22 3 json 10-22 4 ajax如何处理json格式返回数据 10-22 5 ajax应用 省市联动 10-22 6 ajax应用 黄金...

    史上最全韩顺平传智播客PHP就业班视频,9月份全集

    10-20 8 smarty分页技术 10-20 9 10-22 1 ajax介绍 无刷新验证用户名 10-22 2 ajax如何处理xml格式返回数据 10-22 3 json 10-22 4 ajax如何处理json格式返回数据 10-22 5 ajax应用 省市联动 10-22 6 ajax应用 黄金...

    my_ajax_note

    使用Ajax和Smarty模板引擎实现无刷新分页功能。 - **步骤一**:配置Smarty环境。 - **步骤二**:使用Ajax请求数据。 - **步骤三**:使用Smarty模板渲染数据。 示例:配置Smarty环境 ```php $smarty = new Smarty;...

    FleaPHP 框架学习教程.pdf

    - 高级数据库操作技巧,如分页查询。 4. **RBAC权限管理篇** - RBAC原理介绍。 - 实现RBAC权限管理的具体方法。 5. **模板应用篇** - Smarty模板引擎功能和设置讲解。 - 将Ajax功能与Smarty模板结合的方法。 ...

    php100视频原始地址列表整理.doc

    - **学习目标**: 理解分页机制,能够在项目中实现分页功能。 #### 14. PHP上传原理及应用 - **知识点**: 讲解了文件上传的工作原理,包括表单设置、文件接收、文件存储等过程。 - **学习目标**: 掌握文件上传的基本...

    一个英文版php的功能很强的留言本

    【PHP留言本程序详解】 PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其在Web开发领域,PHP的应用十分广泛。本篇文章将详细探讨一个英文版的PHP留言本程序,它具有强大的功能,可以满足用户互动...

    php课程(共100多节)

    13:PHP+MYSQL分页原理 14:PHP上传原理及应用 15:PHP生成HTML文件原理 16:PHP小偷程序原理和实例 17:PHP面向对象开发的学习(一) 18:PHP面向对象开发的学习(二) 19:PHP面向对象开发的学习(三) 20:PHP...

    php新闻源码

    【PHP新闻源码详解】 PHP新闻源码是一个用于构建新闻发布系统的软件代码,它通常包括了创建、编辑、删除和展示新闻的功能。在这个商业案例中,我们可以观察到代码规范性是其核心亮点,这意味着代码结构清晰,注释...

    PHP实例开发源码-嘉缘人才系统php版 GBK.zip

    《PHP实例开发:嘉缘人才系统php版GBK详解》 PHP作为一款强大的服务器端脚本语言,广泛应用于网站开发,其灵活性和可扩展性深受开发者喜爱。本文将深入解析名为"嘉缘人才系统php版GBK"的实例项目,旨在帮助读者理解...

    php实例bbs论坛

    【PHP实例:BBS论坛详解】 在Web开发领域,PHP是一种广泛应用的服务器端脚本语言,尤其在构建动态网站和论坛系统方面表现出色。"PHP实例BBS论坛"是一个典型的项目,它涵盖了基础的Web交互功能,如用户注册、登录、...

    PHP100视频教程全集112集BT种子【PHP经典】

    PHP100视频教程13:PHP+MYSQL分页原理 PHP100视频教程14:PHP上传原理及应用 PHP100视频教程15:PHP生成HTML文件原理 PHP100视频教程16:PHP小偷程序原理和实例 PHP100视频教程17:PHP面向对象开发的学习(一) ...

    基于PHP的新闻博客系统案例源代码

    【PHP新闻博客系统详解】 PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其在Web开发领域,PHP的应用十分广泛。本案例中的"基于PHP的新闻博客系统"是一个典型的Web应用实例,它结合了数据库管理和...

Global site tag (gtag.js) - Google Analytics