發布乙個最強的PHP通用分頁類

2022-09-23 13:15:08 字數 1978 閱讀 2546

如果你學過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

aabb

cctt

[field:aa/]

[field:bb/]

[field:cc/]

[field:tt function=date("y-m-d h-i-s","@me")/]

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)

$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通用分頁類

假如你學過asp.net,你一定知道它裡面有乙個叫datalist之類自帶的分頁功能十分強大,這裡的這個類就模擬了一部份這個功能,我敢用 強大 來定義它,是因為作為乙個通用的頁類,這個類真正做到了 通用 廢話少說,馬上介紹一下是如何使用的。1 先新建乙個用於測試的表 create table tes...

乙個通用分頁類

1 功能 這個通用分頁類實現的功能是輸入頁數 第幾頁 和每頁的數目,就能獲得相應的資料。2 實現原理 分頁的實現通常分為兩種,一種是先把資料全查詢出來再分頁,一種是需要多少查詢多少,這裡使用第二種,所以就需要先實現在dao層能夠查詢一定範圍內的資料,這裡就實現通過id作為鍵值,查詢一定範圍內的資料的...

發布乙個通用的資料分頁的儲存過程

create procedure sp page tb varchar 50 表名 col varchar 50 按該列來進行分頁 coltype int,col列的型別,0 數字型別,1 字元型別,2 日期時間型別 orderby bit,排序,0 順序,1 倒序 collist varchar ...