Written by Manabu Bannai

【Codeigniterの基礎】DBから情報を読み込み、ビューに表示する方法

CodeIgniter PROGRAMMING

CodeIgniterをDBに接続して、DB内の情報を表示する方法です。
以下のDB設定を例に解説していきます。

DB名:ci_site
テーブル:pageData
∟カラム数:5
∟ id
∟ titile
∟ page
∟ text1
∟ text2

上記が分かりづらい場合は、以下の写真もあわせてご覧ください。
pageData_02

また、DBには以下の写真のようにデータを挿入しておいてください。
pageData_03

尚、当記事のページ構成の理解のため、事前に以下の記事をご確認ください。
【CodeIgniterの基礎】ビューの作成、複数ビューの読み込み設定

それではまとめていきます。

CodeIgniterをDBに接続します

DBとの接続情報を環境にあわせて設定します。
編集ファイル:application/config/database.php

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = 'root';
$db['default']['database'] = 'ci_site';

DBをautoloadで読み込む

// $autoload['libraries'] = array();
$autoload['libraries'] = array("database");

この時点でページ読み込みをして、エラーが出ないか確認しましょう。

DBから情報を引っ張るために、model_get.phpを作成する

ファイル作成場所:application/model/model_get.php

<?php

class Model_get extends CI_Model{
	function getData($page){	        //取得したデータを『$page』に挿入
		$query = $this->get_where("pageData", array("page" => $page));	
                //pageDataのカラム内にあるpageテーブルから情報を取得する
		return $query->result();	//結果を表示する
	}
}

サイトコントローラーでDB情報を読み込む

編集ファイル:application/controllers/site.php

public function home(){
	$this->load->model("model_get");	//モデルフォルダ内のmodel_getを読み込む
	$data["results"] = $this->model_get->getData("home");	//pageDataのカラム内にあるpageテーブルから取得したデータ(home)との紐付けをする。その後、$dataに情報を挿入する。

	$this->load->view("site_header");
	$this->load->view("site_nav");
	// $this->load->view("content_home");
	$this->load->view("content_home", $data);
	$this->load->view("site_footer");
}

DBから引っ張ってきた情報をページ内に表示する

編集ファイル:application/views/content_home.php

<div id="content">
	<?php
		foreach($results as $row){
			$title = $row->title;
			$text1 = $row->text1;
			$text2 = $row->text2;
		}
		echo heading($title, 1, "class=home-h1")
	?>
		<p><?php echo $text1; ?></p>
		<p><?php echo $text2; ?></p>
</div>

content_about.phpも同様に設定していきます

サイトコントローラーでアバウトページのDB情報を読み込みます。
編集ファイル:application/controllers/site.php

public function about(){
	$this->load->model("model_get");	//モデルフォルダ内のmodel_getを読み込む
	$data["results"] = $this->model_get->getData("about");
	//pageDataのカラム内にあるaboutテーブルから情報を取得する

	$this->load->view("site_header");
	$this->load->view("site_nav");
	$this->load->view("content_about", $data);
	$this->load->view("site_footer");
}

アバウトページのビュー設定をしていきます。

編集ファイル:application/views/content_about.php

<div id="content">
		<?php
			foreach($results as $row){
				$title = $row->title;
				$text1 = $row->text1;
				$text2 = $row->text2;
		}
		echo heading($title, 1, "class=home-h1")
		?>
		<p><?php echo $text1; ?></p>
		<p><?php echo $text2; ?></p>
</div>

以上となります。
これで簡易CMSが完成しました\(^o^)/

※P.S:無料メルマガで発信中:過去の僕は「ブログ発信で5億円」を稼ぎました。次は「30億円」を目指します。挑戦しつつ、裏側の思考を「メルマガ」から発信します。不満足なら1秒で解約できます。無料登録は「こちら」です。