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