2018-11-01

増田プログラマー養成講座 その15 Webアプリの完成見本

前回は、Webアプリモックアップ(ハリボテ)を作るところまでやりました。

今回は、Webアプリ機能実装してみましょう!

 

学習の狙い

データベースを使ったWebアプリを作って、データベースの基本操作CRUDの4つ)を練習してみよう!

CRUD
  1. Create 追加
  2. Read  取得
  3. Update 更新
  4. Delete 削除

 

説明の順番について

どういう順番で説明したら分かりやすいか検討してみた。

  1. まず先に、Webアプリの完成見本を提示します。
  2. 続いて、作る過程説明しながら、各プログラム意味説明してみます

 

作業の流れ

ざっくりと、以下のような流れで作っていきます

  1. XAMPPを起動する。(参考 anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備)
  2. CodeIgniterインストールする。(参考 anond:20181022232327 増田プログラマー養成講座 その9 MVCフレームワークを使ってみよう)
  3. phpMyAdminでデータベース操作する。(参考 anond:20181024214133 増田プログラマー養成講座 その11 データベースを使ってみよう)
  4. ApacheWebサーバーソフト)の設定を変更する。(今回説明
  5. Visual Studio Code等のツールプログラムを書く。(次回説明
  6. ブラウザー動作確認する。

 

XAMPPを起動させる

(参考 anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備)

講座その6を参考にして、XAMPPを起動させて、ApacheMySQLスタートして下さい。

 

CodeIgniterインストールする。

(参考 anond:20181022232327 増田プログラマー養成講座 その9 MVCフレームワークを使ってみよう)

講座その9を参考にして、XAMPPの中にCodeIgniterインストールしておきます

 

phpMyAdminでデータベース操作する。

(参考 anond:20181024214133 増田プログラマー養成講座 その11 データベースを使ってみよう)

講座その11を参考にして、MySQLWebアプリ用のデータベーステーブル作成しておきます

 

データベースの設定

講座その11で、データベース練習で「chat」というデータベースを作ってみました。

そのときmessage」というテーブル作りましたが、今回Webアプリで使うテーブルとして新たに「talk」というテーブル作成します。

(補足:前に作ったテーブルmessage」の中に、テーブル名と同じ「message」という名前カラム(列)を作ってました。これでも問題ないんだけど、プログラムを書くときテーブル名とカラム名を混同しないようにしたいので、念のため作り変えときましょう。)

 

talkテーブル新規作成する

SQLで「talk」というテーブルを作る場合、以下のようなSQL文になります

CREATE TABLE `talk` (

 `id` int(11) NOT NULL,

 `create_at` datetime NOT NULL,

 `update_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

 `message` text NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

このSQL文をphpMyAdminで実行すれば「talkテーブルを作れます

  1. phpMyAdminを開く。
  2. データベース「chat」を開く。(前に作った「messageテーブルは使わないので削除してもOK
  3. phpMyAdmin画面の上部メニューの「SQL」をクリックする。
  4. データベース chat 上でクエリを実行する:」の空欄に上記SQL文をコピーして実行すれば、「talk」というテーブルができる。

 

これでデータベースの準備ができました。

 

Apacheの設定

CodeIgniterで使う「URL」の表示方法ちょっと変更しておきたいので、ApacheWebサーバーソフト)の設定を変更しておきます

(「URL」=情報がどこにあるのかを示すインターネット上の住所)

Apacheの「mod_rewrite」という仕組みによって、URLの扱い方を変更します。)

 

(例)

変更前: http://localhost/waf/index.php/welcome/

変更後: http://localhost/waf/welcome/

というように、URLの中にある「/index.php」という文字列を表示させない設定にします。

 

Apache設定ファイル.htaccess

Apacheの設定は「.htaccess」という名前設定ファイルを用意して変更します。

 

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php/$1 [L]

 

.htaccess」の書き方を理解するには、「正規表現」という仕組みの知識必要です。

まだ「正規表現」を勉強してない段階では、とりあえずコピペして使って下さい。

 

Webアプリ完成見本

CodeIgniterで、

を行ないます

 

CodeIgniter設定ファイルconfig.php」の編集

config.php」をIDEやエディターで開いて、以下のように変更する。

$config['base_url'] = 'http://localhost/waf/';

$config['index_page'] = '';

 

最初は、

$config['index_page'] = 'index.php';

になってるけど、「index.php」を削除して、「''」(空)にしておく。

 

CodeIgniterデータベース設定ファイル「databese.php」の編集

「databese.php」をIDEやエディターで開いて、以下のように変更する。

$db['default'] = array(

 'dsn' => '',

 'hostname' => 'localhost',

 'username' => 'root',

 'password' => '',

 'database' => 'chat',

 'dbdriver' => 'mysqli',

(※上記のように、MySQLのusernamepasswordは「root」(管理者)のデフォルト設定を使ってます。)

 

Controllerの作成

上記フォルダの中に「Welcome.php」というファイルを作って、内容を以下のようにします。

<?php

defined('BASEPATH') or exit('No direct script access allowed');

 

class Welcome extends CI_Controller

{

 public function __construct()

 {

  parent::__construct();

  $this->load->model('chat_model');

  $this->load->helper('url');

  // $this->output->enable_profiler(true); // for debug

 }

 

 // 初期画面

 public function index()

 {

  $action = $this->input->post('action');

  if ($action == 'add') {

   $message = $this->input->post('message');

   $this->chat_model->create_message($message);

  }

  $data['talk'] = $this->chat_model->read_message();

  $this->load->view('welcome_index', $data);

 }

 

 // 更新画面

 public function update($id = '')

 {

  $id = $id ? $id : $this->input->post('id'); // id -> segment or post

  $action = $this->input->post('action');

  if ($action == 'update') {

   $message = $this->input->post('message');

   $this->chat_model->update_message($id, $message);

  }

  $data['talk'] = $this->chat_model->read_message_by_id($id);

  $this->load->view('chat_update', $data);

 }

 

 // 削除画面

 public function delete($id = '')

 {

  $id = $id ? $id : $this->input->post('id');

  $action = $this->input->post('action');

  if ($action == 'delete') {

   $this->chat_model->delete_message($id);

  }

  $data['talk'] = $this->chat_model->read_message_by_id($id);

  $this->load->view('chat_delete', $data);

 }

}

 

View作成

上記フォルダの中に「welcome_index.php」「chat_update.php」「chat_delete.php」という3つのファイルを作って、内容を以下のようにします。

 

Viewファイル「welcome_index.php」の中身

<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>増田チャット</title>

  <base href="<?php echo base_url(); ?>">

 </head>

 <body>

  <h1>増田チャット</h1>

  <h2>新規投稿</h2>

  <form action="welcome/index" method="post" accept-charset="utf-8">

   <label>メッセージ</label>

   <input type="text" name="message">

   <input type="hidden" name="action" value="add">

   <button>投稿する</button>

  </form>

  <h2>投稿一覧</h2>

  <table border="1" cellpadding="5" cellspacing="0" bordercolor="#CCCCFF">

   <tr>

    <th>No.</th>

    <th>投稿日時</th>

    <th>メッセージ</th>

    <th>編集</th>

    <th>削除</th>

   </tr>

   <?php if(isset($talk)): ?>

   <?php foreach($talk as $item): ?>

   <tr>

    <td><?php echo $item['id']; ?></td>

    <td><?php echo $item['create_at']; ?></td>

    <td><?php echo $item['message']; ?></td>

    <td><a href="welcome/update/<?php echo $item['id']; ?>">編集</a></td>

    <td><a href="welcome/delete/<?php echo $item['id']; ?>">削除</a></td>

   </tr>

   <?php endforeach; ?>

   <?php endif; ?>

  </table>

 </body>

</html>

 

Viewファイル「chat_update.php」の中身

<?php defined('BASEPATH') or exit('No direct script access allowed');?>

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>増田チャット</title>

  <base href="<?php echo base_url(); ?>">

 </head>

 <body>

  <h1>増田チャット</h1>

  <h2>編集</h2>

  <p>メッセージを変更して「更新する」ボタンを押してください。</p>

  <form action="welcome/update" method="post" accept-charset="utf-8">

   <label>メッセージ</label>

   <?php if (isset($talk)): ?>

   <input type="text" name="message" value="<?php echo $talk['message']; ?>">

   <input type="hidden" name="id" value="<?php echo $talk['id']; ?>">

   <input type="hidden" name="action" value="update">

   <?php else: ?>

   <p>※該当するメッセージがありません。</p>

   <?php endif;?>

   <button>更新する</button>

  </form>

  <p><a href="welcome/index">戻る</a></p>

 </body>

</html>

 

Viewファイル「chat_delete.php」の中身

<?php defined('BASEPATH') or exit('No direct script access allowed');?>

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>増田チャット</title>

  <base href="<?php echo base_url(); ?>">

 </head>

 <body>

  <h1>増田チャット</h1>

  <h2>削除</h2>

  <p>以下のメッセージを削除しますか?</p>

  <form action="welcome/delete" method="post" accept-charset="utf-8">

   <?php if (isset($talk)): ?>

   <p style="background-color:lightpink"><?php echo $talk['message']; ?></p>

   <input type="hidden" name="id" value="<?php echo $talk['id']; ?>">

   <input type="hidden" name="action" value="delete">

   <?php else: ?>

   <p>※該当するメッセージがありません。(または削除済です。)</p>

   <?php endif;?>

   <button>削除する</button>

  </form>

  <p><a href="welcome/index">戻る</a></p>

 </body>

</html>

 

Model作成

上記フォルダの中に「Chat_model.php」というファイルを作って、内容を以下のようにします。

<?php

defined('BASEPATH') or exit('No direct script access allowed');

 

class Chat_model extends CI_Model

{

 public function __construct()

 {

  parent::__construct();

  $this->load->database();

 }

 

 // Create

 public function create_message($message = '')

 {

  $sql = "INSERT INTO talk SET create_at = ? , message = ?";

  $param = array(date('Y-m-d H:i:s'), $message);

  $this->db->query($sql, $param);

  return $this->db->insert_id();

 }

 

 // Read All

 public function read_message()

 {

  $sql = "SELECT * FROM talk";

  $query = $this->db->query($sql);

  return $query->result_array();

 }

 

 // Read by Id

 public function read_message_by_id($id = 0)

 {

  $sql = "SELECT * FROM talk WHERE id = ?";

  $param = array($id);

  $query = $this->db->query($sql, $param);

  return $query->row_array();

 }

 

 // Update

 public function update_message($id = 0, $message = '')

 {

  $sql = "UPDATE talk SET message = ? WHERE id = ?";

  $param = array($message, $id);

  $this->db->query($sql, $param);

  return $this->db->affected_rows();

 }

 

 // Delete

 public function delete_message($id = 0)

 {

  $sql = "DELETE FROM talk WHERE id = ?";

  $param = array($id);

  $this->db->query($sql, $param);

  return $this->db->affected_rows();

 }

}

 

この続きは、

anond:20181101230220 増田プログラマー養成講座 その16 Webアプリの完成見本(続き)」

へ続きます

記事への反応 -
  • 増田式プログラマー養成講座 その16 Webアプリの完成見本(続き)

    「anond:20181101225335 増田式プログラマー養成講座 その15 Webアプリの完成見本」の続きです。   index.phpの編集 Webサーバーの時間設定がズレていると、メッセージを作成したときに、作...

  • 増田式プログラマー養成講座 コンテンツ一覧

    コンテンツが増えてきたので、一覧ページを用意します。   anond:20181016015826 増田式プログラマー養成講座 その1 パソコンの用意 anond:20181016164341 増田式プログラマー養成講座 そ...

    • 増田式プログラマー養成講座 その1 パソコンの用意

      自宅と会社のプログラミングの環境(機材、ソフトなど)を教えて?   (例) 自宅:パソコンを持ってない。スマホ(iPhone7)のみ。 会社:パソコンのスペック(OS、CPU、メモリ、HDDの...

    • 増田式プログラマー養成講座 その2 プログラム=データ+処理

      プログラムとは何か? プログラムは、コンピューター(電子計算機)に与える指示書のこと。 人間がプログラム(コード)を書いてコンピューターに与えると、コンピューターはプロ...

    • 増田式プログラマー養成講座 その3 構造化=順次、反復、分岐

      それではさっそく、一番簡単な手続型プログラミング言語の使い方を学んでみよう。   今回学ぶこと 手続型のキーワードは、「順次」「反復」「分岐」の3つ。(この3つの動作は人...

    • 増田式プログラマー養成講座 その4 子ども向け教材「Scratch」

      今回は、子ども向けプログラミング学習教材「Scratch」(スクラッチ)を使って、一番簡単な構造化プログラミングの手法を学んでみよう。   Scratchとは何か? Scratch (プログラミング言...

      • anond:20181016193144

        おお、4歳児にプログラム教えたいんで ちょうどスクラッチのこと知りたかった ありがとう

    • 増田式プログラマー養成講座 その5 オブジェクトとは何か?

      今回は、手続型プログラミングの後半となる「オブジェクト指向プログラミング」(OOP)について学ぼう。 OOPは内容が多いので数回に分けて説明してみます。(説明が下手だったらフォ...

    • 増田式プログラマー養成講座 その6 OOPの種類、PHPの準備

      前回は、オブジェクトの説明をした。 今回は、オブジェクトの使い方=オブジェクト指向プログラミング(OOP)を学ぼう。   OOPの種類 オブジェクト指向プログラミングには、 クラス...

      • 増田の致命的な欠陥!?

        増田でプログラミングの記事を書こうと思ったら、コードが貼り付けられなかった。 スクリプトの記述はエスケープされてしまい、はてな記法も使えなかった。 仕方ないので、コード無...

        • anond:20181017192611

          Qiitaでやれよ

          • anond:20181017192644

            Qiitaって評判悪いね?   Qiitaは潰れて欲しいのに・・・ https://anond.hatelabo.jp/20181017203823 Qiitaで何があったのか https://anond.hatelabo.jp/20150127003906

            • anond:20181018075427

              殺人犯出してる増田の評判にはかなわない

              • anond:20181018142423

                増田の殺人犯T氏はQiita評判低下の原因のK氏を熱心に擁護してたから、Qiitaは実質増田

        • anond:20181017192611

          ブログでやれ

        • anond:20181017192611

          スーパーpre記法(シンタックス・ハイライト)だめなん?

      • プログラムの実行環境の用意

        PHPの実行環境として、XAMPPを用意してもらったけど、これは後でデータベースの練習をすることも考えてチョイスしました。 =MySQLを使って「SQL」(問合型言語)の練習をするため。 だ...

    • 増田式プログラマー養成講座 その7 OOPの仕組み(前半)

      前回は「オブジェクトとは何か?」を説明した。 今回はオブジェクトの使い方=オブジェクト指向プログラミング(OOP)で用意されている仕組みを見てみよう。 とりあえずPHPで仕組みを...

      • 不等号の増田記法 &#60; &#62;

        文字実体参照一覧 http://rinrin.saiin.net/~aor/hms/cer 数値文字参照を使えば、増田で半角文字の不等号が書ける。 不等号 小なり &lt; (<) &lt; (&lt;) &#60; (&60;) 不等号 ...

      • anond:20181019181549

        しっかり書き続けてくれていて嬉しい

    • 増田式プログラマー養成講座 その8 OOPの仕組み(後半)

      前回に続いて、今回もオブジェクト指向プログラミング(OOP)の基本的な仕組みを見ていこう。   教材は、ドットインストールのPHP入門です。 PHP入門 (全30回) - プログラミングならド...

      • anond:20181020230044

        誰も読んでねえしつまんねえしセンス無いから止めた方がいいぞ

        • anond:20181020230633

          あー、別に全然構わないけど? これはある意味、かつての自分に向けて書いている手紙なんだ。 自分が初心者だったときに、聞きたかった説明を勝手に増田に書いている。 自己満足で...

          • anond:20181020231617

            受け取り手のことを考えずに 誰にも求められてないことをベラベラ話すのがまさにキモオタの特徴 こういう奴がいるからエンジニアの印象が悪くなる

            • anond:20181020232302

              テレパシーがないのに、見えない相手のプロファイリングができるわけないじゃんね?w 対面で話すなら、相手に合わせられるけどねw

              • anond:20181020233005

                物書きは見えない読者を想定して文章を作る 技術者のドキュメントも同じ これができない奴はどんな仕事やらせても駄目だろうな 言われたものを作るだけで責任の無い末端技術者で終...

                • anond:20181020233446

                  ペルソナは想定してるに決まってるじゃんw →初心者

                • anond:20181020233446

                  まあ、おまえには説明できないことは、自明ですが? いるよねー、口先だけ達者な奴。 他人に騙されないためには「言ってることじゃなく、実際にやってること」を見る必要がある。(...

        • anond:20181020232302

          ならおまえが説明してみろや? 添削してやってもいいぜ? おまえは口先だけの能無しだから、書けるわけねえけどなw(確信)     …と煽れば、もしかしたら顔を真っ赤にしたスー...

        • anond:20181020230633

          新人の部下に教育ができない無能な上司? 上司がアホだと部下は苦労するよね?

    • 増田式プログラマー養成講座 その9 MVCフレームワーク

      前回はオブジェクト指向プログラミング(OOP)で使う様々な仕組みについて学びました。 今回はOOPでWebアプリを作ってみよう!   今日学ぶこと MVCフレームワークとは? PHPのMVCフレ...

      • anond:20181022232327

        PHPのスクリプトを増田に投稿するとき、「&#60;」や「&#62;」をエスケープしないで記事を書いてたら、IPアドレスでアクセス制限がかけられてしまった。 =はてなの他のサービスのWebペー...

        • anond:20181022233535

          今見たら、増田にアクセスできるようになってた。 アクセス制限されても、数時間経ったら自動的に制限が解除されるのかも? Thank you! → はてなの中の人

      • anond:20181022232327

        悪いことは言わない Laravel使っとけ

    • 増田式プログラマー養成講座 その10 OOPの参考書

      前回はオブジェクト指向プログラミング(OOP)の使いどころを学ぶために、MVCフレームワークを使ってみました。(ほんの触りだけ) 今回はOOPの理解を助けるための参考書を探してみま...

      • anond:20181023184616

        データベース、SQLの使い方をどうやって説明するか?検討してみた。 RDBはMySQLを使用=XAMPPのMySQL+phpMyAdminですぐに練習できるから。   RDBの仕組み RDBの歴史 RDBの概要 SQL誕生の背景...

        • anond:20181024000744

          IT企業のプログラミング研修資料 はてなの研修資料が公開されている。 はてな研修用教科書 https://github.com/hatena/Hatena-Textbook LLはPerl、関数型はScalaで勉強してるんですね?(他には、Jav...

          • anond:20181024003352

            「IT 企業 研修 資料 まとめ」でググったら、一覧を作ってくれてる人がいた。 IT 企業 研修 資料 まとめ - Google 検索 https://www.google.co.jp/search?q=IT+%E4%BC%81%E6%A5%AD+%E7%A0%94%E4%BF%AE+%E8%B3%87%E6%96%99...

            • anond:20181024124651

              各社のIT研修資料をざっと見てみた。 IPA はてな ドワンゴ の資料が、体系的にまとめられているような気がした。   しかし、これは講師が授業で使うかんじのまとめ方をされている...

        • anond:20181024000744

          そもそもだけど、勉強は、 興味 教材 時間 という3つの条件さえ整えれば、誰でもできるようになる。 それはちょうど植物を育てるようなもので、種・土壌・水や空気、日光や温度...

        • anond:20181024000744

          昔の自分を振り返ると、とてもせっかちで「先に結論を言って!」というかんじだった。 (インスタントに慣れ過ぎていて、時間のかかるものはじれったくて待てない。)   昔の自分...

    • 増田式プログラマー養成講座 その11 データベースを使ってみよう

      前回まで手続型言語の基本(構造化プログラミング、オブジェクト指向プログラミング)を見てきた。 今回から問合型言語のSQLを学び、データベース(DB)を使ってみよう。   データベ...

    • anond:20181024214737

      ブクマありがとうございます。ちょっとバズってたみたいでビックリしました! 増田式プログラマー養成講座 コンテンツ一覧 http://b.hatena.ne.jp/entry/s/anond.hatelabo.jp/20181024214737   アク...

    • anond:20181024214737

      臨時のJava入門講座 この講座を書くきっかけとなった増田(未経験からのプログラマーなんだが全然分からない 2018-10-15)を改めて読んでみると、 10月からプログラミングを始めた。 ...

    • 増田式プログラマー養成講座 その12 データベースの参考書

      前回は、MySQLとphpMyAdminを使って、リレーショナル・データベース(RDB)を少し触ってみた。 今回は、RDBの使い方や仕組みについて理解を深めるための資料を探してみよう。   本 本は、...

    • 増田式プログラマー養成講座 その13 SQLの文法

      前回は、データベースの参考書を見た。 今回は、DBで使うプログラム言語「SQL」の文法を見てみよう。   リレーショナル・データベース(Relational Database、RDB)とは? WikipediaでRDBの説明...

    • 関数型プログラミングの教材は何を使ってますか?

      プログラマーの増田は、新人(初心者)に関数型プログラミングを教えるとき、教材(言語、書籍、ツールなど)には何を使ってますか? まずは「Lisp」か「Scheme」を使ってみる。Scheme...

      • anond:20181101234844

        C#、Javaなど、実際に業務に使う言語でラムダ式使わせとけば十分だろ

        • anond:20181101235458

          そうだな。 新人にはラムダ式の書式でも教えておけば十分だな? (関数型と論理型の説明は有料コンテンツでやろうw)

          • anond:20181102002040

            ワイ関数オタク、Calculus of Inductive Constructionsの勉強をしようとするも英語が苦手で挫折 日本語の資料ないんか・・・?有料でいいから・・・

    • anond:20181024214737

      始点が初心者なのはツリーの応答とかで分かったけれど、終点はどこなんだろう?

  • 増田式プログラマー養成講座 その14 Webアプリの試作品を作成

    前回は、SQLの文法を学びました。 今回は、データベースを使ったWebアプリの制作を通じて、SQLの使い方を確認してみましょう。   Webアプリとは? Webブラウザー(Google Chromeなど)で動...

  • 増田式プログラマー養成講座 その17 Webアプリの骨組み

    前回は、Webアプリの完成見本を先に見てみました。 今回は、Webアプリを作る途中の過程を見て、作る雰囲気を一緒に味わってみましょう。   フレームワークの使用ルール=「設定より...

  • 増田式プログラマー養成講座 その18 SQLでデータの追加と取得

    前回は、Webアプリの骨組み(スケルトン)までを作って、製作の過程を見てみました。 今回は、データベースのCRUD操作を行なって、チャットのメッセージを追加/取得/変更/削除する...

    • anond:20181104233013

      #GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOS...

  • 増田式プログラマー養成講座 その19 SQLでデータの更新

    前回は、Webアプリの骨組み(スケルトン)に、SQLでデータの追加と取得をやりました。 今回は、SQLでデータの更新をやりましょう。   メッセージの更新 SQLの「UPDATE」を使えば、デー...

    • anond:20181110120715

      あのさ、こういうプログラムって3分ぐらい頑張ればなんでもできるようにならないの?

      • anond:20181110121013

        ならないね。でも外野から見て何でそんなめんどくさいこと悩まないといけないのかわかりにくいのも事実。

        • anond:20181110121318

          プログラミングは、数学と同じで扱うアルゴリズム(解法)次第で難易度が変わる。 それ以外は「難しいんじゃなくて面倒なだけ」 イメージとしては、単純な足し算や掛け算を100回...

      • anond:20181110121013

        ドットインストールの説明動画は3分程度で区切られてるね。 余計なことを省いて、本質だけ=1回に1項目だけに絞れば、3分を1単位にして説明できると思う。 ありがとう。参考に...

  • 増田式プログラマー養成講座 その20 SQLでデータの削除

    前回は、SQLでデータの更新をやりましょう。 今回は、SQLでデータの削除をやりましょう。   メッセージの削除 データの更新はSQLの「UPDATE」を使いました。 データの削除はSQLの「DELET...

    • anond:20181110182445

      正直、SQLの説明は失敗だった。ごめんねw SQLの説明じゃなくて、MVCフレームワークの使い方の説明の方が長くなって、自分でも見にくいと思った。   やり直すなら、まずはフレームワ...

      • 分かりやすい教材で選ぶならJavaScriptもあり?

        増田のアドバイスで、初心者には「JavaScript」が推奨されてた。 https://jgthms.com/javascript-in-14-minutes/ JavaScriptはプロトタイプの説明を後回しにすれば分かりやすいかも?

        • anond:20181110192400

          プロトタイプが肝だろ、と思うが、下手に難しく書くよりは、初心者は素直にダラダラ書いた方がまだ読める というか、自分でも頭が未だに混乱することがある Schemeからやってきたくせ...

  • 増田式プログラマー養成講座 その21 データベース設計 (1)要件定義

    前回まで、データベースを使ったWebアプリを作成して、SQLの使い方を学びました。 今回から、データベースの設計について学んでみよう。   参考書 anond:20181026145516 増田式プログラ...

  • 増田式プログラマー養成講座 その22 データベース設計 概念→物理

    前回は、DB設計の(1)要件定義を学びました。 今回は、DB設計の(2)概念設計、(3)論理設計、(4)物理設計を見てみましょう。   DB設計の流れ 要件定義 概念設計 論理設計 物理設計   ...

    • 1ヶ月でJavaをマスターする学習カリキュラム

      どうやったらプログラミング未経験者を1ヶ月で一人前のJavaプログラマーにできるだろうか?   基礎 JavaでOOP デザインパターン テスト IDE(IntelliJ IDEA等) ツール(Maven、Gradle等) ...

      • 学習用のプログラミング言語の選定基準

        型について考えてみる 個人的には、 最初に、動的型付けの言語を使ってみる。 次に、静的型付けの言語を使ってみる。 最後に、型推論が強力な言語を使ってみる。 という順番がい...

  • 増田式プログラマー養成講座 その23 SQLを巡る物語

    前回は、データベース設計について学びました。 今回は、その他のデータベースの話題について見てみましょう。     リレーショナル・データベースの理論 問合型言語のSQLは、「関...

記事への反応(ブックマークコメント)

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん