[导入]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/}
<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
廢話少說,馬上介紹一下是如何使用的。
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通用分页类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从“学徒”(Apprentice III
- 下一篇: 博客园T恤内部泄漏版(附图)