SMARTY分页详解

今天写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'');
?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值