コードイグナイター 結果の取得

クエリを投げて、結果のデータを取得しよう

ActiveRecordクラスの「get()」、「get_where()」で取り出すことができます。

データベースの検索結果は、result()で表示できる。

クエリ結果の生成 >>

 

 

結果オブジェクトの取得

2種類方法があります。

 

ActiveRecord」(getなど)

query

 

queryを利用するか、getを利用するかで書き方が違います。

 

■2種類の書き方の比較

$query = $this->db->query('SELECT * FROM user_tbl');

$query = $this->db->get('user_tbl');

 

どちらで書いても大丈夫です。

「user_tbl」テーブルからすべてのデーターを配列の形で取得してきます。

 

■細かく言うと

「データベースインスタンス(関数)」の「query()」メソッドや「get()」メソッドで

結果オブジェクト(値や文字列)を取得します。

 

queryはDB用の関数です。これを使って、値を「DB、テーブル」から取り出します。

 

$query = $this->db->query('SELECT * FROM user_table');

 

一番オーソドックスな書き方です。

 

getを使って書くと

$query = $this->db->get('user_tbl');

 

「user_tbl」という名前のテーブルから、全てのレコードを取り出します

こちらの方が短くていいですよね。

 

第2、3引数を使う

第2、第3引数で、limit 句と offset 句を セットできます。

 

$query = $this->db->get('user_tbl',10,20);

 

limit・・・10行取得

offset・・・開始位置を決める。21行目から取得する。

 

※use_tblの21行目から、10行を取得するという意味になる。

詳細はこちら>>

 

■get_whereを使う 場合

$query = $this->db->get_where('user_tbl', $where);

 

$whereには連想配列などを書きましょう。

 

WHERE の使い方

SELECT * FROM news WHERE title='Tokyo';

 

newsテーブルの、titleカラム(列)にTokyoが含まれているものを、選ぶ。

という意味になります。

MySQL WHERE の使い方>>

 

【参照】

http://www.ci-guide.info/db/result/

MySQL WHERE の使い方>>

 

 

get_whereの構文について

get_where([$table = ''[, $where = NULL[, $limit = NULL[, $offset = NULL]]]])

 

【パラメータ】

$table (mixed) – データをフェッチするテーブル(複数可); 文字列か配列

$where (string) – WHERE 句

$limit (int) – LIMIT 句

$offset (int) – OFFSET 句

 

【返り値】

CI_DB_result インスタンス(メソッドチェイン)

 

【返り値の型】

CI_DB_result

 

 

結果を配列として取得する

result()

SELECT文を発行して、データを取得します。

このメソッド(関数)は、結果を配列で取得します。配列です。配列なので、配列を取り出す書き方が必要になります。

失敗した場合は 「空の配列」 を返します。

foreach ループで使用する事が多いです。

 

コントローラー内に記述