get_data
(CDBT 2.0.0)
get_data指定のテーブルから任意のデータを取得します
Description
mixed get_data ( string $table_name [, mixed $columns"*", array $conditions, string $operator"and", array $orderarray( "created" => "DESC" ), int $limit, int $offset, string $output_type"OBJECT" ] )指定のテーブルから任意のデータを取得します。このメソッドは完全一致条件でのデータ検索を行い、結果を配列で返します。最終的なテーブルデータの取得処理はWordPressの
$wpdb->get_results()のラッパーになります。Parameters
- table_name
- データを取得するテーブル名。
- columns
- 取得するカラム名。複数カラムのデータを取得する場合はカラム名をカンマ区切りの文字列として指定するか、もしくはカラム名の配列で指定します。省略時の初期値は”*“となり、すべてのカラムが対象になります。
カラム名の指定順がそのまま取得データの配列の要素順になります。 - conditions
- データの取得条件。カラム名をキーとする連想配列で指定します。複数の条件がある場合、すべての条件は
operatorで指定された演算子で連結されます。 - operator
- 条件結合演算子。複数の
conditionsがある場合にそれぞれの条件を連結するための演算子を指定します。省略時の初期値は”AND“です。指定できる値は”AND“と”OR“のみで、無効な値を指定した場合は”AND“となります。バージョン2.1.31で追加されました。 - order
- 取得データのソート順序。カラム名をキーとする連想配列で指定します。値には昇順(ASC)か降順(DESC)のどちらかを指定します。複数指定した場合は、配列要素の順序がソートの優先順になります。
- limit
- 取得データ数の上限値。
- offset
- 取得データの開始オフセット値。
limitが指定されている場合のみ有効となります。 - output_type
- 取得データの戻り値となる配列の型。初期値は”OBJECT“で、配列内の要素がPHPのオブジェクト型(
stdClass Object)となります。指定できる型はWordPressの$wpdb->get_results()の定義値に準じます。
指定できる型:
- OBJECT ─ 数値添字配列の要素としてオブジェクトが格納されている型
Array (
[0] => stdClass Object (
[ID] => 4
[created] => 2016-02-11 09:58:07
[updated] => 2016-02-11 09:58:07
)
[1] => stdClass Object (
[ID] => 2
[created] => 2016-02-11 09:57:38
[updated] => 2016-02-11 09:57:38
)
)
- OBJECT_K ─ 最初のカラムの値をキーとした連想配列の要素にオブジェクトが格納されている型(キーが重複した場合は破棄される)
Array (
[4] => stdClass Object (
[ID] => 4
[created] => 2016-02-11 09:58:07
[updated] => 2016-02-11 09:58:07
)
[2] => stdClass Object (
[ID] => 2
[created] => 2016-02-11 09:57:38
[updated] => 2016-02-11 09:57:38
)
)
- ARRAY_A ─ 数値添字配列の要素がカラム名をキーとした連想配列型
Array (
[0] => Array (
[ID] => 4
[created] => 2016-02-11 09:58:07
[updated] => 2016-02-11 09:58:07
)
[1] => Array (
[ID] => 2
[created] => 2016-02-11 09:57:38
[updated] => 2016-02-11 09:57:38
)
)
- ARRAY_N ─ すべて数値添字形式の2次元配列型
Array (
[0] => Array (
[0] => 4
[1] => 2016-02-11 09:58:07
[2] => 2016-02-11 09:58:07
)
[1] => Array (
[0] => 2
[1] => 2016-02-11 09:57:38
[2] => 2016-02-11 09:57:38
)
)
Return
取得データはoutput_typeに応じた型の配列で返されます。条件に合致するデータがない場合は空の配列が返ります。なお、指定したテーブルが存在しない場合にはFALSEが返ります。
History
| バージョン | 内容 |
|---|---|
| 2.0.0 | CDBT v1の同名メソッドをリファクタリング |
| 2.1.31 | パラメータにoperatorを追加 |
Example
例1 WordPressにログインしているユーザーのデータのみを取得する。
<?php
if ( ! is_admin() && is_user_logged_in() ) {
global $cdbt;
$current_user = wp_get_current_user();
$table_name = "prefix_table";
$data = $cdbt->get_data( $table_name, '*', [ 'user_id' => $current_user->ID ] );
print_r( $data );
}
例2 条件に合致するデータ数を取得する。
<?php
global $cdbt;
$table_name = "prefix_table";
$data = $cdbt->get_data( $table_name, 'count(*)', [ 'gender' => 'male' ], "ARRAY_N" );
$total_data = ! empty( $data ) ? intval( $data[0][0] ) : 0;
echo "Matched data is $total_data.";
}
例3 任意のソート順のデータを10件のみ取得して一覧表として出力する。
<?php
global $cdbt;
$table_name = "prefix_table";
$data = $cdbt->get_data( $table_name, 'name,gender,age', [], 'and', [ 'age' => 'ASC' ], 10, 0 );
$_list = [];
foreach ( $data as $_datum ) {
$_line = '<tr>';
foreach ( $_datum as $_key => $_value ) {
$_line .= '<td>' . $_value . '</td>';
}
$_line .= '</tr>';
$_list[] = $_line;
}
echo '<table>' . implode( '', $_list ) . '</table>';
Included Hooks
- cdbt_crud_get_data_sqlget_data メソッドのSQLクエリをフィルターします
Reference
Related Methods
- find_data()指定されたキーワードを含むデータを検索します
Related Codex