PHPマニュアル/PEARマニュアル | ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot

Structures_DataGrid_DataSource_DBTable | JavaScript入門&応用&リファレンスなら「JavaScriptist」

  

Structures_DataGrid_DataSource_DBTable

Structures_DataGrid_DataSource_DBTable – PEAR::DB_Table データソースドライバ

説明

このクラスは、PEAR::DB_Table オブジェクト用のデータソースドライバです。

サポートする操作モード

このドライバは次の操作モードをサポートしています。

このドライバがサポートする操作モード
モード サポートしている?
複数フィールドによる並べ替え yes
レコードの追加、更新および削除 yes

オプション

このドライバは、以下のオプションを受け付けます。

このドライバのオプション
オプション 説明 デフォルト値
fields array データソースからどのフィールドを取得するか。空の配列を指定すると、 すべてのフィールドを取得します。 array(field1, field2, ...) 形式となります。 array()
generate_columns bool ラベルつきの Structures_DataGrid_Column オブジェクトを作成します。 'labels' オプションを参照ください。 非推奨: 代わりに Structures_DataGrid::generateColumns() を使用してください。 false
labels array データフィールドとラベルの対応。 'generate_columns' が true の場合にのみ使用します。 array(field => label, ...) 形式となります。 非推奨: 代わりに Structures_DataGrid::generateColumns() を使用してください。 array()
params array prepare/execute 用のプレースホルダのパラメータ。 array()
primaryKey array レコードを一意に決定する識別子を含むフィールドの名前、 あるいは数値インデックス (複数のフィールドを指定するのは、 複合主キーの場合のみです)。 null
view string DB_Table オブジェクト内の $sql 配列からのビュー。このオプションは必須です。 null
where string SQL クエリの where 句。 null

全般的な注意

ビューの select 部でエイリアスを使用する場合、DB_Table の count() メソッドが間違った結果を返すことがあります。そのため、 $datagrid->getRecordCount() も間違った結果を返すことがあります。 これを避けるため、DB_Table では件数取得用の特別なクエリを使用します。 これは、件数を取得したいビューの名前の前に '__count_' をつけた名前となります (例えば、'all' というビューがある場合、件数取得用のビューは '__count_all' という名前でなければなりません)。

update() メソッドおよび delete() メソッドを使用するには、 DB_Table のサブクラスで配列 $idx が適切に定義されていなければなりません。 たとえばデータベースのテーブルを自分で作成した場合などで $idx を設定していない場合は、オプション 'primaryKey' を使用して主キーフィールドを定義することができます。

DB_Table クラスを Structures_DataGrid にバインドする

<?php
// DB_Table を継承した、基本的な guestbook クラス
class GuestBook_Table extends DB_Table
{
    var 
$col = array(
        
// 一意な行 ID
        
'id' => array(
            
'type'    => 'integer',
            
'require' => true
        
),
        
// 名
        
'fname' => array(
            
'type'    => 'varchar',
            
'size'    => 32
        
),
        
// 姓
        
'lname' => array(
            
'type'    => 'varchar',
            
'size'    => 64
        
),
        
// メールアドレス
        
'email' => array(
            
'type'    => 'varchar',
            
'size'    => 128,
            
'require' => true
        
),
        
// 登録日
        
'signdate' => array(
            
'type'    => 'date',
            
'require' => true
        
)
    );
    var 
$idx = array();  // インデックスは今回は気にしません
    
var $sql = array(
        
// リストに表示する行
        
'list' => array( 
            
'select' => 'id, signdate, CONCAT(fname, " ", lname) AS fullname',
            
'order'  => 'signdate DESC'
        
)
    );
}

// DB_Table を継承したクラスのインスタンスを作成します
// (既存のデータベース接続を用い、テーブル名は 'guestbook' となります)
$guestbook =& new GuestBook_Table($db'guestbook');

// bind() 用のオプションを設定します
// ($sql 配列の定義済みクエリ 'list' と where 条件を使用します)
$options = array('view' => 'list''where' => 'YEAR(signdate) = 2100');

// guestbook オブジェクトをバインドします
// (レンダリングの前にカラムを作成していない場合は、
// id, signdate, fullname の 3 つのカラムが生成されます)
$test $datagrid->bind($guestbook$options);

// バインド時にエラーが発生したら、それを表示します
if (PEAR::isError($test)) {
    echo 
$test->getMessage(); 
}
?>
忘却曲線を使ってこの知識を確実に記憶に残す

フォーラムで「Structures_DataGrid_DataSource_DBTable」について話す
各種マニュアル: PHPマニュアル | PEARマニュアル | Smarty(英語)マニュアル | PHP-GTKマニュアル | Structures_DataGrid_DataSource_DBTable」をGoogle検索
copyright © 1997-2024 PHP ドキュメント作成グループ(ライセンス). provided by php spot. マニュアル: