gorinphp0928

96
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. AW技能五輪 第4回 PHPセミナー 必要な機能と 実現方法を 確認しようの回 資料作成・サポート:電設部技能五輪プロジェクト

Upload: akitsukada

Post on 14-Dec-2014

255 views

Category:

Technology


0 download

DESCRIPTION

2009年

TRANSCRIPT

Page 1: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

AW技能五輪 第4回 PHPセミナー

必要な機能と

実現方法を

確認しようの回

資料作成・サポート:電設部技能五輪プロジェクト

Page 2: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆はじめに

まずはじめに

Page 3: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆はじめに

課題見ましたよね

Page 4: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆はじめに

楽勝です。(内容的には)

Page 5: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆はじめに

問題は量です><

Page 6: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆はじめに

時間配分だいじ!なので・・・

Page 7: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆はじめに

・今日の流れ

・本番までの流れ

・本番での流れ    を練っておきましょう     (意識して)

Page 8: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆1)流れの確認1-1.今日の流れ

Page 9: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆1)流れの確認1-1.今日の流れ

1)流れの確認

Page 10: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆1)流れの確認1-1.今日の流れ

1)流れの確認

2)本番で使うDBについて

Page 11: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆1)流れの確認1-1.今日の流れ

1)流れの確認

2)本番で使うDBについて

3)phpMyAdminでDB作成

Page 12: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆1)流れの確認1-1.今日の流れ

1)流れの確認

4)機能要件の理解

2)本番で使うDBについて

3)phpMyAdminでDB作成

Page 13: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆1)流れの確認1-1.今日の流れ

1)流れの確認

4)機能要件の理解

5)実装のコツとサンプル

2)本番で使うDBについて

3)phpMyAdminでDB作成

Page 14: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆1)流れの確認1-1.今日の流れ

1)流れの確認

4)機能要件の理解

5)実装のコツとサンプル

2)本番で使うDBについて

3)phpMyAdminでDB作成

イマココ!

Page 15: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆1)流れの確認1-2.本番までの流れ(PHP対策的に)

Page 16: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆1)流れの確認1-2.本番までの流れ(PHP対策的に)

1)機能と実装方法確認

Page 17: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆1)流れの確認1-2.本番までの流れ(PHP対策的に)

1)機能と実装方法確認

2)とにかく一回作ってみる

Page 18: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆1)流れの確認1-2.本番までの流れ(PHP対策的に)

1)機能と実装方法確認

2)とにかく一回作ってみる

3)フィードバック

Page 19: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆1)流れの確認1-2.本番までの流れ(PHP対策的に)

1)機能と実装方法確認

4)作るものを大体決める

2)とにかく一回作ってみる

3)フィードバック

Page 20: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆1)流れの確認1-2.本番までの流れ(PHP対策的に)

1)機能と実装方法確認

4)作るものを大体決める

5)制限時間内に作る練習

2)とにかく一回作ってみる

3)フィードバック

Page 21: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆1)流れの確認1-2.本番までの流れ(PHP対策的に)

1)機能と実装方法確認

4)作るものを大体決める

5)制限時間内に作る練習

2)とにかく一回作ってみる

3)フィードバック

イマココ!

Page 22: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆1)流れの確認1-2.本番までの流れ(PHP対策的に)

1)機能と実装方法確認

4)作るものを大体決める

5)制限時間内に作る練習

2)とにかく一回作ってみる

3)フィードバック

重要!!

Page 23: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆1)流れの確認1-3.本番での流れ(金メダル的な意味で)

Page 24: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆1)流れの確認1-3.本番での流れ(金メダル的な意味で)

「30%の変更」に対応する!「変更部分はどこなのか」が分かっていれば大丈夫です。

Page 25: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆1)流れの確認1-3.本番での流れ(金メダル的な意味で)

制限時間内に作る練習で得た自分パターンを落ち着いて実行!!!

phpMyAdmin は友達です。

「30%の変更」に対応する!「変更部分はどこなのか」が分かっていれば大丈夫です。

Page 26: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆1)流れの確認1-3.本番での流れ(金メダル的な意味で)

制限時間内に作る練習で得た自分パターンを落ち着いて実行!!!

phpMyAdmin は友達です。

「30%の変更」に対応する!「変更部分はどこなのか」が分かっていれば大丈夫です。

今日から本番まで、作るものも重視する点もメンバーそれぞれで状況が違ってきます。もうセミナーの日とか

気にせず、いつでもいいから

781または792へどうぞ!!

Page 27: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆1)流れの確認1-1.今日の流れ

1)流れの確認

4)機能要件の理解

5)実装のコツとサンプル

2)本番で使うDBについて

3)phpMyAdminでDB作成

次ココ。

Page 28: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆2)本番で使うDBについて2-1.ちょっとした訂正とお詫び

Page 29: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆2)本番で使うDBについて2-1.ちょっとした訂正とお詫び

さて、これまでのPHPセミナーにおいて、

Page 30: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆2)本番で使うDBについて2-1.ちょっとした訂正とお詫び

さて、これまでのPHPセミナーにおいて、「データベースは大会側が用意しますから!」とご案内してきましたが、

Page 31: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆2)本番で使うDBについて2-1.ちょっとした訂正とお詫び

さて、これまでのPHPセミナーにおいて、「データベースは大会側が用意しますから!」とご案内してきましたが、どうやらデータベース自体も競技者が作る必要があるみたいです。

Page 32: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆2)本番で使うDBについて2-1.ちょっとした訂正とお詫び

さて、これまでのPHPセミナーにおいて、「データベースは大会側が用意しますから!」とご案内してきましたが、どうやらデータベース自体も競技者が作る必要があるみたいです。

謹んでお詫び申し上げます。

Page 33: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆2)本番で使うDBについて2-1.ちょっとした訂正とお詫び

さて、これまでのPHPセミナーにおいて、「データベースは大会側が用意しますから!」とご案内してきましたが、どうやらデータベース自体も競技者が作る必要があるみたいです。

謹んでお詫び申し上げます。

2009年9月28日 (月)

Page 34: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆2)本番で使うDBについて2-1.ちょっとした訂正とお詫び

さて、これまでのPHPセミナーにおいて、「データベースは大会側が用意しますから!」とご案内してきましたが、どうやらデータベース自体も競技者が作る必要があるみたいです。

謹んでお詫び申し上げます。

2009年9月28日 (月)技能五輪プロジェクト代表 江川 貴仁

Page 35: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆2)本番で使うDBについて2-2.テーブル設計しました。(日本語の設計図)

Page 36: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆2)本番で使うDBについて2-2.テーブル設計しました。(実際にDBで使う設計図)

Page 37: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆2)本番で使うDBについて2-2.テーブル設計しました。(テーブル情報一覧表)

Page 38: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆3)phpMyAdminでDB作成3-1.DB作成の手順

・DBの作成(不要かも?)

Page 39: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆3)phpMyAdminでDB作成3-1.DB作成の手順

・DBの作成(不要かも?)

・テーブルの作成

Page 40: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆3)phpMyAdminでDB作成3-1.DB作成の手順

・DBの作成(不要かも?)

・テーブルの作成

・管理者、専門分野、講師の初期値入力

Page 41: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆3)phpMyAdminでDB作成3-1.DB作成の手順

・DBの作成(不要かも?)

・テーブルの作成

・管理者、専門分野、講師の初期値入力

Page 42: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆3)phpMyAdminでDB作成3-2.DBの作成(不要かも?)

Page 43: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆3)phpMyAdminでDB作成3-2.DBの作成(不要かも?)

データベース名:指示に従う   文字セット :utf8_general_ci

Page 44: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆3)phpMyAdminでDB作成3-2.DBの作成(不要かも?)

これでDB作成完了。

Page 45: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆3)phpMyAdminでDB作成3-3.テーブルの作成

・DBの作成(不要かも?)

・テーブルの作成(一番大事!!)

・管理者、専門分野、講師の初期値入力

Page 46: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆3)phpMyAdminでDB作成3-3.テーブルの作成(一番大事!!)

Page 47: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆3)phpMyAdminでDB作成3-3.テーブルの作成(一番大事!!)

目当てのDBが選択されていることを確認する

Page 48: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆3)phpMyAdminでDB作成3-3.テーブルの作成(一番大事!!)

Page 49: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆3)phpMyAdminでDB作成3-3.テーブルの作成(一番大事!!)

テーブル名と、そのテーブルの列数を入力し、「実行する」をクリック。

Page 50: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆3)phpMyAdminでDB作成3-3.テーブルの作成(一番大事!!)

・列名=フィールド

・データ型=種別、 (CHARまたはVARCHARの 場合は長さ/値の 欄に桁数を入力)

・必須?=ヌル(NULL)

・主key?=PRIMARY

・ユニーク?=UNIQUE

照合順序はutf8_general_ciを選択し「保存する」クリック

Page 51: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆3)phpMyAdminでDB作成3-3.テーブルの作成(一番大事!!)

これで一つのテーブル作成完了!

Page 52: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆3)phpMyAdminでDB作成3-3.テーブルの作成(一番大事!!)

これらのテーブルをどんどん作る。

Page 53: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆3)phpMyAdminでDB作成3-3.テーブルの作成(一番大事!!)

CREATE TABLE kaiin ( kai_no INT NOT NULL, kai_mail VARCHAR(60) UNIQUE NOT NULL, kai_pw TEXT NOT NULL, kai_name TEXT NOT NULL, kai_name_kana TEXT NOT NULL, kai_tel CHAR(10) NOT NULL, kai_fax CHAR(10), kai_keitai CHAR(11), kai_yuubin CHAR(7), kai_todoufuken TEXT NOT NULL, kai_juusyo TEXT NOT NULL);

ALTER TABLE kaiin ADD CONSTRAINT PK_kaiin PRIMARY KEY (kai_no);

CREATE TABLE category ( cat_no INT NOT NULL, cat_name VARCHAR(30));

ALTER TABLE category ADD CONSTRAINT PK_category PRIMARY KEY (cat_no);

CREATE TABLE kanrisya ( kan_id VARCHAR(20) NOT NULL, kan_pw TEXT NOT NULL);

ALTER TABLE kanrisya ADD CONSTRAINT PK_kanrisya PRIMARY KEY (kan_id);

CREATE TABLE koushi ( kou_no INT NOT NULL, kou_mail VARCHAR(60) UNIQUE NOT NULL, kou_pw TEXT NOT NULL, kou_name TEXT NOT NULL, kou_name_kana TEXT NOT NULL, kou_birthday DATE, kou_zayu TEXT, kou_pic_filename TEXT);

残りのテーブルもphpMyAdminで作ってみてください。

講師用チートスクリプト

ALTER TABLE koushi ADD CONSTRAINT PK_koushi PRIMARY KEY (kou_no);

CREATE TABLE seminar ( sem_no INT NOT NULL, kou_no INT, cat_no INT, sem_date DATE NOT NULL, sem_place TEXT NOT NULL, sem_summery TEXT NOT NULL, sem_detail TEXT NOT NULL, sem_comment TEXT);

ALTER TABLE seminar ADD CONSTRAINT PK_seminar PRIMARY KEY (sem_no);

CREATE TABLE sankasya ( sem_no INT NOT NULL, kai_no INT NOT NULL, san_ip TEXT NOT NULL);

ALTER TABLE sankasya ADD CONSTRAINT PK_sankasya PRIMARY KEY (sem_no,kai_no);

ALTER TABLE seminar ADD CONSTRAINT FK_seminar_0 FOREIGN KEY (kou_no) REFERENCES koushi (kou_no);ALTER TABLE seminar ADD CONSTRAINT FK_seminar_1 FOREIGN KEY (cat_no) REFERENCES category (cat_no);

ALTER TABLE sankasya ADD CONSTRAINT FK_sankasya_0 FOREIGN KEY (sem_no) REFERENCES seminar (sem_no);ALTER TABLE sankasya ADD CONSTRAINT FK_sankasya_1 FOREIGN KEY (kai_no) REFERENCES kaiin (kai_no);

Page 54: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆3)phpMyAdminでDB作成3-3.テーブルの作成(一番大事!!)

こうなっていればテーブル作成完了です。

Page 55: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆3)phpMyAdminでDB作成3-4.管理者、専門分野、講師の初期値入力

・DBの作成(不要かも?)

・テーブルの作成

・管理者、専門分野、講師の初期値入力

Page 56: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆3)phpMyAdminでDB作成3-4.管理者、専門分野、講師の初期値入力

課題PDFを見ると、

「管理者」「専門分野」「講師」

の情報は既に与えられたものを使えるようです。

順番に確認し、phpMyAdminで入力していきましょう。

Page 57: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆3)phpMyAdminでDB作成3-4.管理者、専門分野、講師の初期値入力

◆管理者の情報

 

Page 58: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆3)phpMyAdminでDB作成3-4.管理者、専門分野、講師の初期値入力

◆管理者の情報

 p.6/14 「10.管理モジュール」

(b) 管理者は以下のユーザネーム/   パスワードでログインできる

   login: admin   password: 3@mA?eZsh

Page 59: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆3)phpMyAdminでDB作成3-4.管理者、専門分野、講師の初期値入力

◆管理者の情報

 p.6/14 「10.管理モジュール」

(b) 管理者は以下のユーザネーム/   パスワードでログインできる

   login: admin   password: 3@mA?eZsh

これをkanrisyaテーブルに入れておく。

Page 60: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆3)phpMyAdminでDB作成3-4.管理者、専門分野、講師の初期値入力

◆管理者の情報

パスワードは、SHA1関数を使って暗号化

Page 61: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆3)phpMyAdminでDB作成3-4.管理者、専門分野、講師の初期値入力

◆専門分野の情報

 

◆講師の情報

 

Page 62: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆3)phpMyAdminでDB作成3-4.管理者、専門分野、講師の初期値入力

◆専門分野の情報

 

◆講師の情報

 

 p.14/14 「付録D 専門分野」

  1.印刷 2.写真 3.DTP 4.ウェブデザイン

 p.5/14 「付録D 専門分野」

  4.講師の情報 [付録Bを参照]   これは別途用意去れているデータを   用いることができる。

それぞれ、phpMyAdminでデータをいれてみてください。

/*

初期値入力講師用チートスクリプト*/

INSERT INTO `kanrisya` (`kan_id` , `kan_pw`) VALUES ('admin', SHA1( '3@mA?eZsh' ));

INSERT INTO `category` VALUES (1,'印刷'), (2,'写真'), (3,'DTP'), (4,'ウェブデザイン');

INSERT INTO `koushi` (`kou_no` ,`kou_mail` ,`kou_pw` ,`kou_name` ,`kou_name_kana` ,`kou_birthday` ,`kou_zayu` ,`kou_pic_filename`)VALUES (1,'[email protected]', SHA1( 'pass' ) , 'koushinamae1', 'koushinamaekana1', '2009-09-15', NULL , NULL);

Page 63: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆3)phpMyAdminでDB作成3-4.管理者、専門分野、講師の初期値入力

◆DB作成についてまとめ

 ・本番では、  テーブル作成を一人で、  資料なしでやらなきゃ!

 ・テーブルの情報を覚えておこう。  覚えなくても済むくらい  理解してもOK。

 ・phpMyAdminの操作に  慣れておこう。

Page 64: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆1)流れの確認1-1.今日の流れ

1)流れの確認

4)機能要件の理解

5)実装のコツとサンプル

2)本番で使うDBについて

3)phpMyAdminでDB作成

次ココ。

Page 65: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆4)機能要件の理解4-1.What と How

◆システムを作るとき重要なのは

Page 66: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆4)機能要件の理解4-1.What と How

◆システムを作るとき重要なのは

・何を作るか(what)

・どう作るか(how)

  を考えておくことです。

Page 67: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆4)機能要件の理解4-1.What と How

◆何を作るか(what)

・=仕様書の内容

・つまり全員共通

・作り始める前に しっかり理解

Page 68: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆4)機能要件の理解4-1.What と How

◆どう作るか(how)

・デザイン、ロジック

・人によって違う

・作り始める前に 考えておく

Page 69: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆4)機能要件の理解4-2.What をざっくり見てみよう!

◆仕様書(課題)を分析してみる

Page 70: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆4)機能要件の理解4-2.What をざっくり見てみよう!

◆仕様書(課題)を分析してみる

管理者

講師

参加希望者

講師を登録・編集・削除する

セミナーナビ

セミナーを登録する

会員登録する

セミナーを検索する

ログイン/ログアウトする

セミナー一覧を見る

参加希望者一覧を見る

希望者データをCSVでダウンロードする

セミナーに参加登録する

参加希望者を検索する

パスワードリマインダ!

自分のパスワードを変更する

Page 71: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆4)機能要件の理解4-2.What をざっくり見てみよう!

◆仕様書(課題)を分析してみる

管理者

講師

参加希望者

講師を登録・編集・削除する

セミナーナビ

セミナーを登録する

会員登録する

セミナーを検索する

ログイン/ログアウトする

セミナー一覧を見る

参加希望者一覧を見る

希望者データをCSVでダウンロードする

セミナーに参加登録する

参加希望者を検索する

パスワードリマインダ!

自分のパスワードを変更する

この図がちゃんと

頭の中に入っていれば、

30%の変更に

対応しやすいです。

Page 72: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆4)機能要件の理解4-3.What を細かく見てみよう!

随時更新中、下記の資料(公開Googleドキュメント)参照でお願いします。。。

http://bit.ly/gorinphp

Page 73: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆1)流れの確認1-1.今日の流れ

1)流れの確認

4)機能要件の理解

5)実装のコツとサンプル

2)本番で使うDBについて

3)phpMyAdminでDB作成

イマココ!

Page 74: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆5)実装のコツとサンプル5-1.ノウハウ伝授の流れ

Page 75: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆5)実装のコツとサンプル5-1.ノウハウ伝授の流れ

・同じ処理は「まとめる」

一つのCSSファイルを複数のhtmlから参照するようなもんです。

Page 76: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆5)実装のコツとサンプル5-1.ノウハウ伝授の流れ

・同じ処理は「まとめる」

・「同じ処理」を見つけよう!

まとめる処理は大体決まっています。DB周りとかDB周りとかDB周りとか。

Page 77: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆5)実装のコツとサンプル5-1.ノウハウ伝授の流れ

・同じ処理は「まとめる」

・サンプルコード確認

実際にそのまま使うこともできるサンプルコードで動きを確認します。

・「同じ処理」を見つけよう!

Page 78: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆5)実装のコツとサンプル5-1.ノウハウ伝授の流れ

・同じ処理は「まとめる」

・サンプルコード確認

実際にそのまま使うこともできるサンプルコードで動きを確認します。

・「同じ処理」を見つけよう!

イマココ!

Page 79: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆5)実装のコツとサンプル5-2.同じ処理は「まとめる」

◆「まとめる」の考え方<?php

 ~~~ 処理1 ~~~

 ~~~ 処理2 ~~~

?>

sample1.php

<?php

 ~~~ 処理2 ~~~ 処理3 ~~~ 処理3 ~~~

?>

sample2.php

Page 80: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆5)実装のコツとサンプル5-2.同じ処理は「まとめる」

◆「まとめる」の考え方<?php

 ~~~ 処理1 ~~~

 ~~~ 処理2 ~~~

?>

sample1.php

<?php

 ~~~ 処理2 ~~~ 処理3 ~~~ 処理3 ~~~

?>

sample2.php

Page 81: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆5)実装のコツとサンプル5-2.同じ処理は「まとめる」

◆「まとめる」の考え方<?php

 ~~~ 処理1 ~~~

 ~~~ 処理2 ~~~

?>

sample1.php

<?php

 ~~~ 処理2 ~~~ 処理3 ~~~ 処理3 ~~~

?>

sample2.php

<?php

function syori() { ~~~ 処理2 ~~~}

?>

matome.php

Page 82: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆5)実装のコツとサンプル5-2.同じ処理は「まとめる」

◆「まとめる」の考え方<?php

 ~~~ 処理1 ~~~

syori2();

?>sample1.php

<?php

syori2(); ~~~ 処理3 ~~~ 処理3 ~~~

?>

sample2.php

<?php

function syori2() { ~~~ 処理2 ~~~}

?>

matome.php

Page 83: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆5)実装のコツとサンプル5-2.同じ処理は「まとめる」

◆「まとめる」の考え方

<?php

 ~~~ 処理1 ~~~

syori2();

?>

sample1.php

<?php

syori2();

syori3(); syori3();

?>

sample2.php

<?phpfunction syori2() { ~~~ 処理2 ~~~}function syori3() { ~~~ 処理3 ~~~}?>

matome.php

Page 84: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆5)実装のコツとサンプル5-2.同じ処理は「まとめる」

◆「まとめる」の考え方

sample2.php

<?php

include(“matome.php”);

syori2(); syori3(); syori3();

?>

<?phpfunction syori2() { ~~~ 処理2 ~~~}function syori3() { ~~~ 処理3 ~~~}?>

matome.php

Page 85: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆5)実装のコツとサンプル5-2.同じ処理は「まとめる」

◆ include()文の使い方

sample1.php

<?php

include(“matome.php”);

syori2(); syori3(); syori3();

?>

<?phpfunction syori2() { ~~~ 処理2 ~~~}function syori3() { ~~~ 処理3 ~~~}?>

matome.php

include() 文は、別ファイルのソースコード(php, html)を全て読み込んでくれます。

Page 86: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆5)実装のコツとサンプル5-2.同じ処理は「まとめる」

◆関数の作り方、使い方

<?phpfunction syori2() { ~~~ 処理2 ~~~}function syori3() { ~~~ 処理3 ~~~}?>

matome.php

・「関数」を自分で作る

<?php

function 関数名(引数) { /* * 好きなように * 処理を書く */}

?>

Page 87: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆5)実装のコツとサンプル5-2.同じ処理は「まとめる」

◆関数の作り方、使い方・「関数」を自分で作る

<?php

function 関数名(引数) { /* * 好きなように * 処理を書く */ return ほげほげ;}

?>

function …キーワードです。絶対必要。

関数名 …好きな名前でどうぞ。英語で  動詞+名詞にすることが多い。  connectDBとか。

引数 …関数を使うときに、値を受け取る  ことが出来ます。受け取った値は  関数内で使えます。変数と同様に、 関数名($hikisu)と書きます。  引数は無くてもOKです。

return …関数を呼び出した元に、好きな値を  返すことが出来ます。  返さなくても(省略しても)OK。

Page 88: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆5)実装のコツとサンプル5-2.同じ処理は「まとめる」

◆5-2.同じ処理は「まとめる」

・複数の場所で同じ処理をするコード を見つける。

・そういうコードを、別のファイルに まとめて書いておく。 (=関数にしておく)

・そのコードを使いたいときは、 include(“ファイル名”); と書いてから、関数名を書く。

Page 89: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆5)実装のコツとサンプル5-1.ノウハウ伝授の流れ

・同じ処理は「まとめる」

・サンプルコード確認

実際にそのまま使うこともできるサンプルコードで動きを確認します。

・「同じ処理」を見つけよう!イマココ!

Page 90: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆5)実装のコツとサンプル5-3.「同じ処理」を見つけよう

◆うまくやると効率うp&時間短縮!!

・DBへの接続、SQLの実行、結果の取得 あたりは関数化の定番

・エスケープ処理関係の関数を短く (mysql_real_escape_string()や  htmlspecialchars()など)

・その他、メール送信処理などを 関数としてまとめておいてもよいかも

Page 91: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆5)実装のコツとサンプル5-3.「同じ処理」を見つけよう

◆エスケープ処理関係・esc.phpというファイルに、次の関数をまとめてみよう

1)文字列$strを渡すとhtmlspecialchars(trim($str))

  の結果の文字列を返すh($str)関数

2)文字列$sqlを渡すと

  mysql_real_replace_string(trim($str))

  の結果の文字列を返すm($str)関数

Page 92: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆5)実装のコツとサンプル5-3.「同じ処理」を見つけよう

esc.phpのサンプル<?php

function h($str) { return htmlspecialchars(trim($str));}

function m($sql) { return mysql_real_replace_string(trim($sql));}

?>

Page 93: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆5)実装のコツとサンプル5-3.「同じ処理」を見つけよう

◆DBへの接続、SQLの実行、結果の取得・db.phpというファイルに、次の関数をまとめてみよう

1)SQL文を引数として渡すと、MySQLへの接続を

  確立してからSELECT/INSERT/UPDATE/DELETE文を

  実行し、MySQLへの接続を閉じてから結果を

  返すexecSQL($sql)関数

2)MySQLへ接続し、文字セットをutf8に設定してから

  接続オブジェクトを返すconnectDB()関数

Page 94: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆5)実装のコツとサンプル5-3.「同じ処理」を見つけよう

db.phpのサンプル<?php

include("esc.php");

function connectDB() { $host = "サーバのhost名またはIPアドレス"; $user = "MySQLユーザ名"; $pass = "そのパスワード"; $db = "データベース名"; $conn = mysqli_connect( $host, $user, $pass, $db ); mysqli_query($conn, "SET NAMES utf8"); return $conn;}function execSQL($sql) { $conn = connectDB(); $result = mysqli_query($conn, m($sql)); mysqli_close($conn); return $result; }

?>

Page 95: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

◆1)流れの確認1-1.今日の流れ

1)流れの確認

4)機能要件の理解

5)実装のコツとサンプル

2)本番で使うDBについて

3)phpMyAdminでDB作成

イマココ!

Page 96: Gorinphp0928

AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT. 

AW技能五輪 第4回 PHPセミナー

必要な機能と実現方法を確認しようの回

お疲れ様でした!

資料作成・サポート:電設部技能五輪プロジェクト