カテゴリ: CodeIgniter 更新日: 2026/07/30

CodeIgniterでCRUDアプリを作ってみよう!基本構成から完成まで

CodeIgniterでCRUDアプリを作ってみよう!基本構成から完成まで
CodeIgniterでCRUDアプリを作ってみよう!基本構成から完成まで

先生と生徒の会話形式で理解しよう

生徒

PHPのフレームワークであるCodeIgniterを使って、自分でWebアプリを作ってみたいです。まずは何から始めればいいですか?

先生

素晴らしい挑戦ですね。まずはアプリの基本であるCRUD(クラッド)という概念を理解することから始めましょう。

生徒

CRUDとは何ですか?パソコン初心者でもわかるように教えてください。

先生

CRUDとは、データの作成、読み取り、更新、削除という4つの基本操作のことです。仕組みを順を追って解説しますね。

1. CodeIgniterとCRUDの基本概念

1. CodeIgniterとCRUDの基本概念
1. CodeIgniterとCRUDの基本概念

PHPのフレームワークであるCodeIgniter(コードイグナイター)は、Webアプリケーションを効率よく開発するための道具箱のようなものです。初心者にも扱いやすく、高速に動作することが特徴です。Web開発において最も重要な機能がCRUD(クラッド)です。

CRUDは以下の言葉の頭文字をとったものです。

  • Create(作成):新しいデータを保存する
  • Read(読み取り):保存されたデータを表示する
  • Update(更新):既存のデータを書き換える
  • Delete(削除):不要なデータを消去する

この4つの操作をマスターすれば、掲示板やTODOリストなど、あらゆるWebサービスを作るための基礎が身につきます。パソコンのファイル操作を想像してみてください。新しいファイルを作り、中身を読み、修正して、不要になったら捨てる、これと同じことをプログラムで行うのがCRUDです。

2. MVCモデルという考え方

2. MVCモデルという考え方
2. MVCモデルという考え方

CodeIgniterではMVCモデルという設計手法を使います。これは役割を3つに分けることで、プログラムを整理整頓する仕組みです。初心者には少し難しく感じるかもしれませんが、部屋の片付けに例えると簡単です。

  • Model(モデル):データの管理係。データベースとのやり取りを担当します。
  • View(ビュー):見た目の係。ユーザーが見る画面のデザインを担当します。
  • Controller(コントローラー):司令塔。モデルとビューに指示を出し、全体の流れを調整します。

この3つの役割を分けることで、プログラムが長くなっても修正しやすくなり、誰が見ても分かりやすいコードを書くことができます。まずはこの「役割分担」という概念を意識してみましょう。

3. データベースの設定と接続

3. データベースの設定と接続
3. データベースの設定と接続

CRUDアプリを作るには、情報を保存する場所が必要です。ここで使うのがデータベースです。データベースとは、情報を整理して保存しておく巨大な本棚のようなものです。CodeIgniterからデータベースに接続するには、設定ファイルであるdatabase.phpを編集します。

初心者の方は、まずローカル環境でMySQLというデータベースソフトを使うのが一般的です。以下のような設定を環境に合わせて記述します。


$db['default'] = array(
    'hostname' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'my_app_db',
    'dbdriver' => 'mysqli',
);

ここで重要なのは、ホスト名、ユーザー名、パスワードを間違えないことです。設定が完了すれば、プログラムから自由自在にデータを出し入れできるようになります。プログラミングにおいて、この「環境構築」や「接続設定」は最初の大きな関門ですが、一度成功すれば次からはスムーズに進めることができます。

4. データを保存するCreate処理

4. データを保存するCreate処理
4. データを保存するCreate処理

それでは、実際にユーザーから入力された情報を受け取り、データベースに保存するCreate処理を見ていきましょう。画面から入力されたデータは、コントローラーを経由してモデルへと渡されます。コードでは以下のように記述します。


public function create_data() {
    $data = array(
        'title' => $this->input->post('title'),
        'content' => $this->input->post('content')
    );
    $this->db->insert('tasks', $data);
}

$this->input->postは、HTMLのフォームから送信されたデータを受け取るためのコマンドです。そして$this->db->insertでデータベースのテーブルに情報を書き込みます。初心者の方は、まずこの「送信されたデータを受け取ってデータベースに入れる」という一連の流れを何度も練習して、感覚を掴むことが大切です。

5. データを表示するRead処理

5. データを表示するRead処理
5. データを表示するRead処理

保存したデータを画面に表示するのがReadの役割です。データベースからデータを取り出し、ビュー(画面)に渡すコードをコントローラーに書きます。Web開発において、データを取り出す操作をクエリと呼ぶこともあります。これはデータベースに対する「問い合わせ」という意味です。


public function show_list() {
    $query = $this->db->get('tasks');
    $data['tasks'] = $query->result();
    $this->load->view('task_list', $data);
}

$this->db->get('tasks')は、指定したテーブルの全データを取得する命令です。これによって、データベースの中に何が入っているのかをリスト形式で画面に出すことができます。これがWebアプリの基本となる「情報の表示」です。もしデータが空であれば画面には何も出ませんが、テストデータを入れることで動作を確認できます。

6. フォームとビューの連携

6. フォームとビューの連携
6. フォームとビューの連携

最後に、ユーザーが入力を行う画面を作るためのHTMLについて解説します。CodeIgniterではビューファイルの中にHTMLを書きますが、Bootstrapなどのフレームワークを使うと、初心者でもきれいなデザインの画面をすぐに作れます。以下は投稿フォームの簡単な例です。


<form method="post" action="/tasks/create">
    <input type="text" name="title" placeholder="タイトルを入力">
    <textarea name="content" placeholder="内容を入力"></textarea>
    <button type="submit" class="btn btn-primary">保存する</button>
</form>

このフォームにあるname属性は、コントローラー側でデータを受け取るための「荷札」のようなものです。placeholderは、入力欄が空の時にヒントを表示してくれる便利な機能です。このように、HTMLで画面を作り、PHPで裏側の処理を組み立てることで、初めてのアプリケーションが完成に近づきます。小さなボタン一つからでも、実際に動くものを作っていくプロセスは、プログラミング学習において非常に重要です。

カテゴリの一覧へ
新着記事
New1
Laravel
Laravelのルートとコントローラを対応付ける方法(名前付きルート)を初心者向けに解説
New2
Symfony
Symfonyで画像やファイルをアップロードする時のバリデーション完全ガイド!初心者でもわかる入力チェックの基本
New3
Laravel
Laravelで言語切替UIを作る!多言語対応(ローカリゼーション)実践ガイド
New4
CodeIgniter
CodeIgniterでローカル開発環境を構築する方法!初心者向け完全ガイド
人気記事
No.1
Java&Spring記事人気No1
CodeIgniter
CodeIgniterのキャッシュ管理を完全ガイド!初心者でもわかるメリットと注意点
No.2
Java&Spring記事人気No2
Laravel
Laravelのプロジェクト構造を理解しよう!初心者向けディレクトリ解説
No.3
Java&Spring記事人気No3
Symfony
Symfony学習に役立つおすすめドキュメント・教材・リソース一覧【初心者向け】
No.4
Java&Spring記事人気No4
CodeIgniter
CodeIgniterとは?特徴・できること・他PHPフレームワークとの違いを完全解説
No.5
Java&Spring記事人気No5
Symfony
TwigのHTMLエスケープとrawフィルタの使い方を完全解説!初心者にもわかるテンプレート表示のコツ
No.6
Java&Spring記事人気No6
CodeIgniter
CodeIgniterのビュー共通化ガイド!初心者でもわかる部分ビューの読み込みとinclude設計
No.7
Java&Spring記事人気No7
Laravel
Laravelのルーティングの基本構文と書き方をやさしく解説!初心者でも理解できるWebルートの仕組み
No.8
Java&Spring記事人気No8
Laravel
Laravelの条件分岐とループ処理をBladeで書く方法