サンプル - お手軽版 -- データベースのテーブルから、手っ取り早くデータを取得する
説明
SQL クエリのバインド
データグリッドに表示させるデータを取得するには、SQL 文を
bind()
メソッドに渡します。
例 62-1SQL クエリをデータソースとして使用する <?php
require 'Structures/DataGrid.php';
// DataGrid のインスタンスを作成します
$datagrid =& new Structures_DataGrid();
// データベース接続を設定します
$options = array('dsn' => 'mysql://user:password@host/db_name');
// 基本的な SQL 文をデータソースとしてバインドします
$test = $datagrid->bind('SELECT * FROM my_table', $options);
// バインド時に発生したエラーを表示します
if (PEAR::isError($test)) {
echo $test->getMessage();
}
// DataGrid の内容を、デフォルトのレンダラ (HTML テーブル) で表示します
$test = $datagrid->render();
// レンダリング時のエラーを表示します
if (PEAR::isError($test)) {
echo $test->getMessage();
}
?> |
|
SQL 言語になじみのある方なら、上の例を改良し、
より複雑なクエリを使用して自分の必要なデータを表示させることができるでしょう。
以下に示すように、データセットに対して自動的にページ処理機能を追加することもできます。
この機能は、SQL 文に透過的に LIMIT 句を追加し、
データベースへのアクセスを最適化します。
例 62-2自動ページ処理 <?php
require 'Structures/DataGrid.php';
// 1 ページあたりのレコード数を 10 件にします
$datagrid =& new Structures_DataGrid(10);
// データソースを設定します
$options = array('dsn' => 'mysql://user:password@host/db_name');
$test = $datagrid->bind("SELECT * FROM my_table", $options);
if (PEAR::isError($test)) {
echo $test->getMessage();
}
// DataGrid の内容を、デフォルトのレンダラ (HTML テーブル) で表示します
$test = $datagrid->render();
if (PEAR::isError($test)) {
echo $test->getMessage();
}
// ページ処理用の HTML リンクを表示します
$test = $datagrid->render(DATAGRID_RENDER_PAGER);
if (PEAR::isError($test)) {
echo $test->getMessage();
}
?> |
|