这篇文章主要介绍了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}
希望本文所述对大家基于smarty模板的PHP程序设计有所帮助。