find_data

(CDBT 2.0.0)

find_data指定されたキーワードを含むデータを検索します

Description

mixed find_data ( string $table_name, mixed $search_key [, string $operator"AND", mixed $columns"*", array $orderarray( "created" => "DESC" ), int $limit, int $offset, string $output_type"OBJECT" ] )
テーブルから指定されたキーワードを含むデータを検索します。このメソッドは部分一致条件でのデータ検索を行い、結果を配列で返します。最終的なテーブルデータの取得処理はWordPressの$wpdb->get_results()のラッパーになります。

Parameters

table_name
データを検索するテーブル名。
search_key
検索対象のキーワード。キーワードを複数指定する場合は空白文字でキーワード文字列を区切るか、配列で指定します。空白文字を含むキーワードを指定する場合は配列での指定が有効です。指定されたキーワードはoperatorで指定した演算子で結合されます(バージョン2.0.7より)。

バージョン2.0.6までは複数キーワード指定時はAND演算子で結合されます。
operator
検索キーワードが複数ある場合の結合条件。初期値はANDで、ANDもしくはORを指定できます。バージョン2.0.7で追加されました。
columns
取得するカラム名。複数カラムのデータを取得する場合はカラム名をカンマ区切りの文字列として指定するか、もしくはカラム名の配列で指定します。省略時の初期値は”*“となり、すべてのカラムが対象になります。

カラム名の指定順がそのまま取得データの配列の要素順になります。
order
取得データのソート順序。カラム名をキーとする連想配列で指定します。値には昇順(ASC)か降順(DESC)のどちらかを指定します。複数指定した場合は、配列要素の順序がソートの優先順になります。
limit
取得データ数の上限値。
offset
取得データの開始オフセット値。limitが指定されている場合のみ有効となります。
output_type
取得データの戻り値の型。初期値は”OBJECT“で、PHPのオブジェクト型となります。指定できる型は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.0.7 パラメータにoperatorを追加。UNIONによるデータ検索の不具合を修正
2.1.33 UNIONによるデータ検索を廃止。CONCATによるデータ結合検索を実装
2.1.34 CONCATによるデータ結合検索のフィルターを拡張

Example

例1 検索キーワードのどちらかにマッチするデータを取得する。

<?php
global $cdbt;
$table_name = "prefix_table";
$data = $cdbt->find_data( $table_name, 'Yamada Suzuki', 'or' );
print_r( $data );

例2 取得カラム、ソート順を指定してキーワード検索して連想配列形式でデータを取得する。

<?php
global $cdbt;
$table_name = "prefix_table";
$data = $cdbt->find_data( $table_name, 'Tanaka', null, 'age,gender,name', [ 'ID'=>'DESC' ], 'ARRAY_A' );
print_r( $data );

Caution

このメソッドの検索対象となるカラムの型は、数値型と文字列型、ENUM型、SET型、一部のバイナリ型となります。ただし、プライマリーキーが設定されているカラムは除外されます。それら検索対象カラムに対して指定キーワードが存在するかを横断的に実行します。カラム名を限定しての検索には対応していませんので注意してください。

Included Hooks

Reference

Related Methods

  • get_data()指定のテーブルから任意のデータを取得します

Related Codex