如果你学过Asp.net,你一定知道它里面有一个叫datalist之类自带的分页功能十分强大,这里的这个类就模拟了一部份这个功能,我敢用“强大”来定义它,是因为作为一个通用的页类,这个类真正做到了“通用”。
废话少说,马上介绍一下是如何使用的。
1、先新建一个用于测试的表
CREATE TABLE `test` (
`aa` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`bb` VARCHAR(50) NOT NULL,
`cc` VARCHAR(50) NOT NULL,
`tt` INT DEFAULT '0' NOT NULL
);
2、制作一个模板文件,保存为:test.htm
{dede:page pagesize=15/}
<table width='100%' border='0' cellpadding='1' cellspacing='1' bgcolor='#CCCCCC'>
<tr bgcolor='#F8FFEE' align='center'>
  <td width='10%'>aa</td>
  <td width='30%'>bb</td>
  <td width='30%'>cc</td>
  <td width='30%'>tt</td>
</tr>
{dede:datalist}
<tr bgcolor='#FFFFFF' align='center'>
  <td>[field:aa/]</td>
  <td>[field:bb/]</td>
  <td>[field:cc/]</td>
  <td>[field:tt function='date("Y-m-d H-i-s","@me")'/]</td>
</tr>
{/dede}
<tr bgcolor='#F8FFEE'>
  <td colspan='4'>
  {dede:pagelist listsize=3/}
  </td>
  </tr>
</table>
3、编写调用这个类的代码
数据库的连接信息均在config_base.php这个文件是设定
showtable.php
<?
require("inc_datalist.php");
$dlist = new DataList();
$dlist->Init();
$dlist->SetTemplet("./test.htm");
$dlist->SetSource("select * from ttt");
$liststring = $dlist->Display();
$dlist->Close();
?>
看看效果,做一个分文件就这么简单,还完全实现了页面与逻辑分离
假如我要增加一个GET字符串传递给查询应该怎么做呢?
Easy
假如增加的查询串为 keyword
<?
require("inc_datalist.php");
if(!isset($keyword)) $keyword="";
$dlist = new DataList();
$dlist->Init();
$dlist->SetParameter("keyword",$keyword);
$dlist->SetTemplet("./test.htm");
$dlist->SetSource("select * from ttt where bb like '%$keyword%'");
$liststring = $dlist->Display();
$dlist->Close();
?>
还有什么不能解决吗?
假如有一个字段是布尔值,我想输出时按不同情况输出不同内容,其实不难实现
Dede模板引擎支持使用自定义函数
<?
require("inc_datalist.php");
if(!isset($keyword)) $keyword="";
function GetMyName($mname)
{
    if($mname=="dede") return "My Name";
    else return $mname;
}
$dlist = new DataList();
$dlist->Init();
$dlist->SetParameter("keyword",$keyword);
$dlist->SetTemplet("./test.htm");
$dlist->SetSource("select * from ttt where bb like '%$keyword%'");
$liststring = $dlist->Display();
$dlist->Close();
?>
在程序里不用做什么,需要做的事情是更改一下模板
[field:aa function="GetMyName('@me')"/]
这样返回的值就是函数返回的值。

这样几乎达到尽善尽美的境界,唯一的是分页列表的链接是固定的,不过你可以对它进行改进。
( from tiffany jewelry )

loveairnike 2008-03-14 10:14 发表评论

文章来源:http://www.phpweblog.net/phpers/archive/2008/03/14/2964.html

转载于:https://www.cnblogs.com/ivwsai/archive/2008/05/17/1201480.html

[导入]PHP通用分页类相关推荐

  1. php分页类示例下载,PHP 通用分页类的简单示例

    这篇文章主要为大家详细介绍了PHP 通用分页类的简单示例,具有一定的参考价值,可以用来参考一下.对PHP通用分页类感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 写了个php的通用分页类 ...

  2. 创建一个ASP通用分页类(完整版)

    从开始学习到使用ASP到现在也写了不少程序了,最令人头痛的是写数据分页,每次都是由于几个变量名或几个参数的不同,因而需要每次都写哪一段冗长而又繁杂的分页代码,代码长了使得程序的可读性变差,容易出差,调 ...

  3. [导入]创建一个ASP通用分页类代码部分

    <% '===================================================================== 'XDOWNPAGE   ASP版本 '版本  ...

  4. php创建分页类,一个最强的PHP通用分页类

    如果你学过Asp.net,你一定知道它里面有一个叫datalist之类自带的分页功能十分强大,这里的这个类就模拟了一部份这个功能,我敢用"强大"来定义它,是因为作为一个通用的页类, ...

  5. Spring Boot mybatis HashMap +layui 通用分页

    背景: mybatis 常用数据查询的方法都是先建实体类,再建Mapper,最后写Service,如果只是单纯的去查询数据显示,这样操作太麻烦.本文就以mybatis +layui创建通用分页类,简化 ...

  6. 【struts2+hibernate+spring项目实战】分页功能的完整的实现(通用分页、基类实现)

    一.概述 今天自己做了个项目练练,然后有一些分页的功能,自己把分页的功能做了一个简单的总结,然后,为了以后能够方便自己的开发,做了一个baseDao的实现. 二.代码实现 2.1.分页的实体类page ...

  7. 使用工具类实现通用分页处理

    使用工具类实现通用分页处理 原文发表在JavaResearch.org http://www.misslog.com/blog/detail.asp?blog_id=6&content_id= ...

  8. c oracle 分页工具类,Util工具类 跨Oracle、MySQL通用分页查询

    /**** 跨Oracle.MySQL通用分页查询*/public classPagingUtil { public static finalString MYSQL= "MYSQL&quo ...

  9. 通用分页实现及其OO设计探讨

    分页是一种常用的页面数据显示技术,分页能够通过减少页面数据处理量从而提高了系统的性能.分页应该是做WEB开发必须掌握的一个小技术.而分页却是复杂的,倒不是它的技术有多复杂:而是有太多的重复代码,这些代 ...

最新文章

  1. Java两种排序方式快慢比较
  2. 中国经验对印度等金砖国家智慧城市建设的启示
  3. 人力资源数字化的入口——组织生产力数字模型
  4. Redis | 001能做什么?
  5. mysql 查询后怎么定位列_MySQL如何定位并优化慢查询sql
  6. CCF计算机职业资格认证2016-12-1
  7. rest post put_REST / HTTP方法:POST与PUT与PATCH
  8. 西门子1200如何与c语言通信,S7-1200PLC1214c dc/dc/dc通过profinet以太网和S7-200smartcpu通讯怎么设置?...
  9. vue中对象数组去重的实现
  10. 语音分析应用场景——来电原因分析与运营效率提升
  11. 全卷机神经网络图像分割(U-net)-keras实现
  12. 在外围类作用域之外引用外围类的静态成员,类型名和枚举名都要求有解析操作符...
  13. 【ML小结11】高斯混合模型GMM
  14. u8服务器修改数据源,用友U8服务器修改数据库端口
  15. 软件测试周刊(第31期):所有的伟大 都源于一个勇敢的开始
  16. 多个excel文件合并到一个文件中的多个sheet表中
  17. jzoj5442. 【NOIP2017提高A组冲刺11.1】荒诞
  18. 一篇关于GPS定位写得最详实清晰的文章之一
  19. 谷歌浏览器账号密码自动填充和明文显示问题
  20. 课代表|支付500万美元,为什么连FBI都无法解开美国油管的勒索软件密码?

热门文章

  1. STL - bitset
  2. windows下安装及配置 golang 的Web框架Beego环境
  3. 使用VS2013在WIN8.1上运行gaclib的hello world
  4. 利用Jquery处理跨域请求
  5. 中国建设银行(2011.11.19南京大学)
  6. 在 Win7 下运行 TC 2.0 / TC3.0 / BC 3.1 / QB 4.5 等 DOS 开发工具
  7. step4 . day3 目录访问函数
  8. (错误记录)git push 报错 403
  9. 【luogu P1343 地震逃生】 题解
  10. 2018 浅谈前端面试那些事