ページネーション
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 :ページ pagesize=15/}
aa |
bb |
cc |
tt |
{dede : datalist}
[フィールド:aa/] |
[フィールド: 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();
?>
サブの作成はとても簡単で完成です。 -file. ページとロジックの分離が実現
GET 文字列を追加してクエリに渡したい場合はどうすればよいですか?
簡単
追加されたクエリ文字列がキーワードの場合
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();
?>
あなたはしませんプログラム内で何かをする必要がある場合は、それを行う必要があります。返される値が関数によって返される値。
これはほぼ完璧です。唯一のことは、ページ分割されたリストへのリンクが修正されていることですが、改善することができます。