Smarty分页实现方法完整实例
这篇文章主要介绍了Smarty分页实现方法,涉及基于Smarty的数据库查询、分页相关计算与模板操作技巧,需要的朋友可以参考下。
本文实例讲述了Smarty分页实现方法,分享给大家供大家参考,具体如下:
首先是PHP文件部分:
- <?php
- require("include.php"); //包含smarty配置部分
- require 'conn.php'; //包含数据库配置部分
- $pagesize=10; //设置每页数据显示数量
- $url=$_SERVER['REQUEST_URI'];
- $url=parse_url($url);
- $url=$url['path'];
- $sql="SELECT * FROM `wp_links`";
- $db_list=mysql_query($sql);
- $num=mysql_num_rows($db_list); //统计数据总数
- $pages=$num/$pagesize;
- $pages=ceil($pages); //求出一共需要多少页进行显示
- if ($_GET['page']){
- $pageval=$_GET['page'];
- $page=($pageval-1)*$pagesize;
- }
- if($num>$pagesize){
- if (!isset($pageval)) $pageval=1;
- }
- if ($pages==1){ //如果总页面只有一页的话,将“上一页”“下一页”的标签替换为空。
- $pageup="";
- $pagedown="";
- }else{
- switch($pageval){
- case 1 :{
- $pageup="首页";
- $pagedown="<a href=$url?page=".($pageval+1).">下一页</a>";
- break;
- }
- default :{
- $pageup="<a href=$url?page=".($pageval-1).">上一页</a>";
- $pagedown="<a href=$url?page=".($pageval+1).">下一页</a>";
- break;
- }
- case $pages :{
- $pageup="<a href=$url?page=".($pageval-1).">上一页</a>";
- $pagedown="末页";
- break;
- }
- }
- }$smarty->assign("pageconfig",$pageconfig);
- //==================================================
- $sql_list="SELECT * FROM `wp_links` LIMIT $page,$pagesize"; //由此控制数据显示数量部分
- $db_list_list=mysql_query($sql_list);
- while($row=mysql_fetch_array($db_list_list)){
- $page_list[]=array("id"=>$row['link_id'],"url"=>$row['link_url'],"name"=>$row['link_name']); //将数据库中查询内容重新赋值
- }
- $pageconfig="当前第 $pageval 页,共 $pages 页";
- $smarty->assign("pageconfig",$pageconfig);
- $smarty->assign("pageup",$pageup);
- $smarty->assign("pagedown",$pagedown);
- $smarty->assign("title",$page_list);
- $smarty->display("index.htm");
- ?>
下面为模板的编写部分:
- <table>
- <tr>
- <td>id</td>
- <td>url</td>
- <td>name</td>
- </tr>
- {section name=list loop=$title}
- <tr>
- <td>{$title[list].id}</td>
- <td>{$title[list].url}</td>
- <td>{$title[list].name}</td>
- </tr>
- {/section}
- </table>
- {$pageup}{$pagedown}{$pageconfig}