Asp.net を学習したことがある方は、datalist と呼ばれる非常に強力なページング関数があることをご存知のはずです。このクラスは、一般的にこの関数の一部をシミュレートするためです。 page クラスと同様に、このクラスは真に「ユニバーサル」です。
早速、使い方を紹介していきます。
1. まず、テスト用に新しいテーブルを作成します
CREATE TABLE `テスト` (
`aa` INT NOT NULL AUTO_INCREMENT 主キー、
`bb` VARCHAR(50) NOT NULL、
`cc` VARCHAR(50) NOT NULL、
`tt` INT デフォルト 0 NOT NULL
);
2. テンプレート ファイルを作成し、次の名前で保存します: test.htm
{dede:page pagesize=15/}
aa
bb
cc
tt
{デデ:データリスト}
[フィールド:aa/]
[フィールド:bb/]
[フィールド:cc/]
[field:tt function=date("Y-m-d H-i-s","@me")/]
{/デデ}
{dede:pagelist listsize=3/}
表>
3. このクラスを呼び出すコードを記述します
データベースの接続情報はconfig_base.phpファイルに設定されます
showtable.php
require("inc_datalist.php");
$dlist = 新しい DataList();
$dlist->Init();
$dlist->SetTemplet("./test.htm");
$dlist->SetSource("select * from ttt");
$liststring = $dlist->Display();
$dlist->Close();
?>
エフェクトを見てください。サブファイルの作成はとても簡単で、ページとロジックは完全に分離されています
クエリに渡す GET 文字列を追加したい場合はどうすればよいでしょうか?
簡単
追加したクエリ文字列がキーワードの場合
require("inc_datalist.php");
if(!isset($keyword)) $keyword="";
$dlist = 新しい DataList();
$dlist->Init();
$dlist->SetParameter("キーワード",$キーワード);
$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="";
関数 GetMyName($mname)
{
If($mname=="dede") return "私の名前";
それ以外の場合は $mname を返します;
}
$dlist = 新しい DataList();
$dlist->Init();
$dlist->SetParameter("キーワード",$キーワード);
$dlist->SetTemplet("./test.htm");
$dlist->SetSource("select * from ttt where bb like %$keyword%");
$liststring = $dlist->Display();
$dlist->Close();
?>
プログラムで何もする必要はなく、テンプレートを変更するだけです
[フィールド:aa function="GetMyName(@me)"/]
この方法で返される値は、関数によって返される値です。
これはほぼ完璧です。唯一のことは、ページ分割されたリストへのリンクが修正されていることですが、改善することができます。
。