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

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

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 ループで使用する事が多いです。

 

コントローラー内に記述

$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)
{
echo $user->name; // 属性を呼び出す
echo $user->reverse_name(); // または '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))
{
echo $row->title;
echo $row->name;
echo $row->body;
}

 

■特定の行を選ぶ

特定の行を選びたいときは、第1引数に行番号を「数値」で渡せます。

 

$row = $query->row(5);

 

 

■第二引数に文字列を渡す

 

$query = $this->db->query("SELECT * FROM users LIMIT 1;");
$row = $query->row(0, 'User');

 

echo $row->name; // 属性を呼び出す
echo $row->reverse_name(); // または 'User' クラスに定義されているメソッド

 

これの使い方はよくわからない。

 

row_array()

配列を返すこと以外は上の row() メソッドと同じです。

 

$query = $this->db->query("自分で書いたクエリを入れる");

$row = $query->row_array();

if (isset($row)){
echo $row['title'];
echo $row['name'];
echo $row['body'];
}

 

 

 

結果オブジェクトの機能

【object】

各行のデータをオブジェクトデータとして、「配列」を返します。

つまり、配列のデータを取得できる。

 

$result = $query->result('object');


foreach ($result as $r) { //$rに代入する。

 

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(){

 

// カスタムクラスを指定
$result = $query->result('User');

 

foreach ($result as $r) {

echo $r->first_name; // 一郎
echo $r->family_name; // 鈴木

 

// カスタムメソッドを実行
echo $r->full_name(); // 鈴木 一郎
}
}
}

 

上記を使うには前提条件があります。 User を定義しておくことです。

 

Userの定義

class User {

 

public $first_name; //初期化
public $family_name; //初期化

 

// カスタムメソッドの定義
public function full_name(){
return $family_name . ' ' . $this->first_name;

}

 

}

 

次は、「Active Record」 について学びましょう。

 

 

PHPの勉強方法

目安は1日3~5時間の勉強で100日程度です。実際にやってみましたが、仕事をしながらだと、200日ほどかかります。効率よく学んで行きましょう。

 

 

PHPを学ぶには、独自の言葉を覚える必要があります。「・」が付いているものは、外部のサイトへ飛びます。

 

■ 基本編 ■

PHPとは?

設定方法

PDOとは何か?

mysql_connect()

コンストラクタとは?

-> アロー演算子とは?

データベースへのアクセスについて

 

■ DBへの接続■

管理者権限について

PDOについて知ろう

PDOを使ってMYSQLに接続しよう

 

■ フレームワーク ■

フレームワークは何を使ったらいいのか?

ララベルとは?

コードイグナイターとは?

オートロードとは

無名関数とは?

MVCとは何か?

 

■ オブジェクト指向■

クラス・インスタンス・プロパティ

オブジェクト指向とは?

 

 

 

【フレームワーク】

基本的には、ララベルを学ぶ方がよい。 ララベルはコンポーザー

 

 

コードイグナイターの勉強方法

 

コードイグナイターを学んでいきましょう。「・」が付いているものは、外部のサイトへ飛びます。

 

■ フレームワーク ■

フレームワークは何を使ったらいいのか?

ララベルとは?

コードイグナイターとは?

オートロードとは

無名関数とは?

MVCとは何か?

 

 

【フレームワーク】

基本的には、ララベルを学ぶ方がよい。 ララベルはコンポーザーが入っている。

 

 

参照サイト

オブジェクト指向とは?

PDOとは何か?

mysql_connect()

アロー演算子とは?

データベースへのアクセスについて

 

大変申し訳ありませんが、当社ではサービスの質を落とさないために、月の契約は5件までとさせていただいております。 契約をお待ちいただく可能性もございますので、ご了承のほどよろしくお願いいたします

 

 

 

 

この記事を読んだ人は、こんな記事も読んでいます

 

SEO対策の基本 外部要因とは?

SEO対策の基本的である、外部要因とは何か?

SEO対策をするなら絶対に知っておきたい、基本知識です。

 

売れるサイトを作るのに知って起きたい知識

サーチエンジンマーケティングという言葉をご存知でしょうか?

ホームページで商品やサービスを売る時に知っておきたいマーケティング

についてご紹介いたします。

seo対策をするメリットとは

SEO対策をする5つのメリットとは?

なぜ上位表示させることが大事なのか?なぜSEO対策をする必要があるのか

についてご紹介させていただきます。

 

内部要因とは

SEO対策の内部要因とは?

上位表示させるためには、内部要因について知っておくことも大事です。

キーワードを上位表示させるために必要なのは、ソースコードを最適化することです

内部要因の対策について知りたい方はこちらへ

 

キーワード対策をするまえに

キーワード対策をする前に

そのキーワード対策。ちょっと待ってください。

そのまま対策をすると、必ずお金を損してしまいます。個人事業主や中小企業は

そんな大きなキーワードで対策をしてはいけません。

広告費用が高くなる理由とは

広告費用が高くなる本当の理由とは?

売れないサイトに集めていませんか?広告費用がかかるわりには

お問い合わせが少ない・・・と感じる方は多いはずです。

購入率の悪いサイトに集客をしている可能性があります。

 

 

 

 

【SEO対策・webコンサルティングのプラスワーク対応エリアについて】

プラスワークでは、東京、神奈川、千葉、埼玉を中心に全国でwebコンサルティング、SEO対策、ホームページの更新、ホームページのリニューアル運営代行をしております。売上アップをお考えならお気軽にご相談ください。

 

【SEO対策・webコンサルティングのプラスワーク 対応地域】

北海道 [ 北海道 ]

東北  [ 青森 | 岩手 | 山形 | 福島 | 秋田 | 宮城 ]

関東  [ 東京 | 埼玉 | 千葉 | 茨城 | 栃木 | 群馬 | 神奈川 ]

甲信越 [ 山梨 | 長野 | 新潟 ]

北陸  [ 石川 | 福井 | 富山 ]

東海  [ 愛知 | 静岡 | 岐阜 | 三重 ]

近畿  [ 大阪 | 兵庫 | 京都 | 滋賀 | 奈良 | 和歌山 ]

中国  [ 島根 | 山口 |鳥取 | 広島 | 岡山 ]

四国  [ 徳島 | 香川 | 愛媛 | 高知 ]

九州  [ 福岡 | 佐賀 | 長崎 | 熊本 | 大分 | 宮崎 | 鹿児島 ]

プラスワークでは全国でSEO対策、ホームページ更新、制作をしております。中小企業専門SEO対策・ホームページ更新制作会社、口コミのよいSEO対策会社をお探しならプラスワークにお任せくださいませ。

 

 

【コンテンツ】

トップへ

更新レスキュー

料金について

制作実績

お客様の声

よくある質問

会社概要

お問い合わせ

【更新レスキュー】

ライトコース

ゴールドコース

プラチナコース

 

【その他】

ニュース

メルマガ登録

特別資料プレゼント

相互リンク募集中

【課題から探す】

ホームページの課題

SEO対策とは

SEO対策がダメな理由

上位表示されない理由

相互リンクとは

順位が落ちてしまう原因

 

 

フェイスブック  ツイッター