コードイグナイター 結果の取得
クエリを投げて、結果のデータを取得しよう
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が含まれているものを、選ぶ。
という意味になります。
【参照】
http://www.ci-guide.info/db/result/
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 ループで使用する事が多いです。
コントローラー内に記述
$query = $this->db->query("SELECT * FROM news");
foreach ($query->result() as $row){ echo $row->title; echo $row->text; echo $row->body; } |
newsテーブルにクエリを投げます。
結果の取得は、配列を使ってかきます。
"SELECT * FROM news はnewsテーブルから、全ての行を取り出すという意味になります。
$row->title; は「title」のカラムを取得するって意味です。
$query = $this->db->query("SELECT * FROM news;"); foreach ($query->result('User') as $user) |
foreach ($query->result('User') as $user)
と自由な名前を付けています。
【参照】
https://codeigniter.jp/user_guide/3/database/results.html#id2
http://www.ci-guide.info/db/result/
結果「行」
このメソッドは単一行を返します。
クエリの応答が一つ以上の行になる場合 、最初の行だけが返ります。
結果は オブジェクト で返ります。
$row = $query->row(); if (isset($row)) |
■特定の行を選ぶ
特定の行を選びたいときは、第1引数に行番号を「数値」で渡せます。
$row = $query->row(5); |
■第二引数に文字列を渡す
$query = $this->db->query("SELECT * FROM users LIMIT 1;");
echo $row->name; // 属性を呼び出す |
これの使い方はよくわからない。
row_array()
配列を返すこと以外は上の row() メソッドと同じです。
$query = $this->db->query("自分で書いたクエリを入れる"); $row = $query->row_array(); if (isset($row)){ |
結果オブジェクトの機能
【object】
各行のデータをオブジェクトデータとして、「配列」を返します。
つまり、配列のデータを取得できる。
$result = $query->result('object');
echo $r->first_name; // 一郎(名前) echo $r->family_name;
// 鈴木(苗字)
} |
※arrayはよく利用するので、foreachと一緒に覚えると良いです!!
【array】
連想配列でデータを取得する。
$result = $query->result('array');
foreach ($result as $r) {
echo $r['first_name'];// 一郎の部分 echo $r['family_name']; // 鈴木の部分
} |
【カスタムクラス名】
各行のデータを「カスタムオブジェクト」とする配列データを取得できます。
「カスタムオブジェクト」は定義されているので、インスタンス化して使いましょう。
// カスタムクラスファイルをインクルード
require_once(APPPATH . '/models/user.php');
class User_model extends CI_Model { //User_modelというクラス名
public function getData(){
// カスタムクラスを指定
foreach ($result as $r) { echo $r->first_name; // 一郎
// カスタムメソッドを実行 |
上記を使うには前提条件があります。 User を定義しておくことです。
Userの定義
class User {
public $first_name; //初期化
// カスタムメソッドの定義 }
} |
次は、「Active Record」 について学びましょう。
PHPの勉強方法
目安は1日3~5時間の勉強で100日程度です。実際にやってみましたが、仕事をしながらだと、200日ほどかかります。効率よく学んで行きましょう。
PHPを学ぶには、独自の言葉を覚える必要があります。「・」が付いているものは、外部のサイトへ飛びます。
■ 基本編 ■
PHPとは?
設定方法
PDOとは何か?
mysql_connect()
-> アロー演算子とは?
データベースへのアクセスについて
■ DBへの接続■
管理者権限について
PDOについて知ろう
■ フレームワーク ■
フレームワークは何を使ったらいいのか?
ララベルとは?
コードイグナイターとは?
オートロードとは
無名関数とは?
MVCとは何か?
■ オブジェクト指向■
クラス・インスタンス・プロパティ
オブジェクト指向とは?
【フレームワーク】
基本的には、ララベルを学ぶ方がよい。 ララベルはコンポーザー
コードイグナイターの勉強方法
コードイグナイターを学んでいきましょう。「・」が付いているものは、外部のサイトへ飛びます。
■ 基本編 ■
クエリ結果を作る
Active Recordとは?
クエリヘルパー関数
■ フレームワーク ■
フレームワークは何を使ったらいいのか?
ララベルとは?
コードイグナイターとは?
オートロードとは
無名関数とは?
MVCとは何か?
【フレームワーク】
基本的には、ララベルを学ぶ方がよい。 ララベルはコンポーザーが入っている。
参照サイト
大変申し訳ありませんが、当社ではサービスの質を落とさないために、月の契約は5件までとさせていただいております。 契約をお待ちいただく可能性もございますので、ご了承のほどよろしくお願いいたします
この記事を読んだ人は、こんな記事も読んでいます
SEO対策の基本 外部要因とは?
SEO対策の基本的である、外部要因とは何か?
SEO対策をするなら絶対に知っておきたい、基本知識です。
売れるサイトを作るのに知って起きたい知識
サーチエンジンマーケティングという言葉をご存知でしょうか?
ホームページで商品やサービスを売る時に知っておきたいマーケティング
についてご紹介いたします。
SEO対策をする5つのメリットとは?
なぜ上位表示させることが大事なのか?なぜSEO対策をする必要があるのか
についてご紹介させていただきます。
SEO対策の内部要因とは?
上位表示させるためには、内部要因について知っておくことも大事です。
キーワードを上位表示させるために必要なのは、ソースコードを最適化することです
内部要因の対策について知りたい方はこちらへ
キーワード対策をする前に
そのキーワード対策。ちょっと待ってください。
そのまま対策をすると、必ずお金を損してしまいます。個人事業主や中小企業は
そんな大きなキーワードで対策をしてはいけません。
広告費用が高くなる本当の理由とは?
売れないサイトに集めていませんか?広告費用がかかるわりには
お問い合わせが少ない・・・と感じる方は多いはずです。
購入率の悪いサイトに集客をしている可能性があります。