php创建分页类,一个最强的PHP通用分页类
如果你學過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/}
aa
bb
cc
tt
{dede:datalist}
[field:aa/]
[field:bb/]
[field:cc/]
[field:tt function='date("Y-m-d H-i-s","@me")'/]
{/dede}
{dede:pagelist listsize=3/}
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')"/]
這樣返回的值就是函數返回的值。
這樣幾乎達到盡善盡美的境界,唯一的是分頁列表的鏈接是固定的,不過你可以對它進行改進。
有興趣不妨下載來研究一下:
總結
以上是生活随笔為你收集整理的php创建分页类,一个最强的PHP通用分页类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue新手入门——vue-cli搭建
- 下一篇: php oracle按时间查询,Orac