More Related Content Similar to Gorinphp0928 (20) More from akitsukada (20) Gorinphp09281. AW技能五輪 第4回 PHPセミナー
必要な機能と
実現方法を
確認しようの回
資料作成・サポート:電設部技能五輪プロジェクト
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
2. ◆はじめに
まず
はじめに
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
3. ◆はじめに
課題見ましたよね
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
4. ◆はじめに
楽勝です。
(内容的には)
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
5. ◆はじめに
問題は量です><
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
6. ◆はじめに
時間配分だいじ!
なので・・・
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
14. ◆1)流れの確認
1-1.今日の流れ
1)流れの確認 イマココ!
2)本番で使うDBについて
3)phpMyAdminでDB作成
4)機能要件の理解
5)実装のコツとサンプル
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
26. ◆1)流れの確認
1-3.本番での流れ(金メダル的な意味で)
「30%の変更」に対応する!
今日から本番まで、
「変更部分はどこなのか」が
作るものも重視する点も
メンバーそれぞれで
分かっていれば大丈夫です。
状況が違ってきます。
もうセミナーの日とか
制限時間内に作る練習
気にせず、
で得た自分パターンを
落ち着いて実行!!!
いつでもいいから
phpMyAdmin は友達です。
781または792へどうぞ!!
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
50. ◆3)phpMyAdminでDB作成
3-3.テーブルの作成(一番大事!!)
・列名=フィールド
・データ型=種別、
(CHARまたはVARCHARの
場合は長さ/値の
欄に桁数を入力)
・必須?=ヌル(NULL)
・主key?=PRIMARY
・ユニーク?=UNIQUE
照合順序は
utf8_general_ciを選択し
「保存する」クリック
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
53. ◆3)phpMyAdminでDB作成
3-3.テーブルの作成(一番大事!!)
残りのテーブルもphpMyAdminで
作ってみてください。
講師用チートスクリプト
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 koushi ADD CONSTRAINT PK_koushi PRIMARY KEY (kou_no);
);
ALTER TABLE kaiin ADD CONSTRAINT PK_kaiin PRIMARY KEY (kai_no); CREATE TABLE seminar (
sem_no INT NOT NULL,
kou_no INT,
CREATE TABLE category ( cat_no INT,
cat_no INT NOT NULL, sem_date DATE NOT NULL,
cat_name VARCHAR(30) sem_place TEXT NOT NULL,
); sem_summery TEXT NOT NULL,
sem_detail TEXT NOT NULL,
ALTER TABLE category ADD CONSTRAINT PK_category PRIMARY KEY (cat_no); sem_comment TEXT
);
CREATE TABLE kanrisya ( ALTER TABLE seminar ADD CONSTRAINT PK_seminar PRIMARY KEY (sem_no);
kan_id VARCHAR(20) NOT NULL,
kan_pw TEXT NOT NULL
); CREATE TABLE sankasya (
sem_no INT NOT NULL,
ALTER TABLE kanrisya ADD CONSTRAINT PK_kanrisya PRIMARY KEY (kan_id); kai_no INT NOT NULL,
san_ip TEXT NOT NULL
);
CREATE TABLE koushi (
kou_no INT NOT NULL, ALTER TABLE sankasya ADD CONSTRAINT PK_sankasya PRIMARY KEY (sem_no,kai_no);
kou_mail VARCHAR(60) UNIQUE NOT NULL,
kou_pw TEXT NOT NULL,
kou_name TEXT NOT NULL, ALTER TABLE seminar ADD CONSTRAINT FK_seminar_0 FOREIGN KEY (kou_no) REFERENCES koushi (kou_no);
kou_name_kana TEXT NOT NULL, ALTER TABLE seminar ADD CONSTRAINT FK_seminar_1 FOREIGN KEY (cat_no) REFERENCES category (cat_no);
kou_birthday DATE,
kou_zayu TEXT,
kou_pic_filename TEXT 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);
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
62. ◆3)phpMyAdminでDB作成
3-4.管理者、専門分野、講師の初期値入力
◆専門分野の情報 /*
初期値入力
講師用チート
スクリプト
*/
p.14/14 「付録D 専門分野」 INSERT INTO
`kanrisya` (
`kan_id` , `kan_pw`
) VALUES (
'admin', SHA1( '3@mA?
1.印刷 2.写真 3.DTP 4.ウェブデザイン eZsh' )
);
INSERT INTO
`category`
VALUES (
1,'印刷'
), (
◆講師の情報 2,'写真'
), (
3,'DTP'
), (
4,'ウェブデザイン'
);
p.5/14 「付録D 専門分野」 INSERT INTO `koushi`
(
4.講師の情報
[付録Bを参照]
`kou_no` ,
`kou_mail` ,
`kou_pw` ,
`kou_name` ,
`kou_name_kana` ,
`kou_birthday` ,
これは別途用意去れているデータを `kou_zayu` ,
`kou_pic_filename`
)
用いることができる。 VALUES (
1,'koushi1@example.co
m', SHA1( 'pass' ) ,
'koushinamae1',
'koushinamaekana1',
それぞれ、phpMyAdminで
'2009-09-15', NULL ,
NULL
);
データをいれてみてください。
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
66. ◆4)機能要件の理解
4-1.What と How
◆システムを作るとき重要なのは
・何を作るか(what)
・どう作るか(how)
を考えておくことです。
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
67. ◆4)機能要件の理解
4-1.What と How
◆何を作るか(what)
・=仕様書の内容
・つまり全員共通
・作り始める前に
しっかり理解
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
68. ◆4)機能要件の理解
4-1.What と How
◆どう作るか(how)
・デザイン、ロジック
・人によって違う
・作り始める前に
考えておく
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
70. ◆4)機能要件の理解
4-2.What をざっくり見てみよう!
◆仕様書(課題)を分析してみる
セミナーナビ
講師を
登録・編集・削除する ログイン/ログアウト
する
パスワードリマインダ!
管理者
自分のパスワードを
変更する
参加希望者を
検索する 会員登録する 参加
希望者
講師 セミナーを登録する
セミナーを検索する
セミナー一覧を見る
セミナーに
参加登録する
参加希望者一覧を見る
希望者データを
CSVでダウンロードする
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
71. ◆4)機能要件の理解
4-2.What をざっくり見てみよう!
◆仕様書(課題)を分析してみる
セミナーナビ
講師を
登録・編集・削除する ログイン/ログアウト
する
この図がちゃんと
パスワードリマインダ!
管理者
自分のパスワードを
変更する
頭の中に入っていれば、 参加希望者を
検索する 会員登録する 参加
講師 30%の変更に
セミナーを登録する
セミナーを検索する
希望者
対応しやすいです。
セミナー一覧を見る
セミナーに
参加登録する
参加希望者一覧を見る
希望者データを
CSVでダウンロードする
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
72. ◆4)機能要件の理解
4-3.What を細かく見てみよう!
随時更新中、下記の
資料(公開Googleドキュメント)参照で
お願いします。。。
http://bit.ly/gorinphp
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
81. ◆5)実装のコツとサンプル
5-2.同じ処理は「まとめる」
◆「まとめる」の考え方
<?php <?php
<?php
~~~ ~~~
処理1 処理2 function syori() {
~~~ ~~~ ~~~
処理3 処理2
~~~ ~~~ ~~~
処理2 処理3 }
~~~ ~~~
?>
?> ?>
sample1.php sample2.php matome.php
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
82. ◆5)実装のコツとサンプル
5-2.同じ処理は「まとめる」
◆「まとめる」の考え方
<?php <?php
<?php
~~~
処理1 syori2(); function syori2() {
~~~ ~~~ ~~~
処理3 処理2
~~~ ~~~
syori2(); 処理3 }
~~~
?>
?> ?>
sample1.php sample2.php matome.php
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
83. ◆5)実装のコツとサンプル
5-2.同じ処理は「まとめる」
◆「まとめる」の考え方
<?php
<?php <?php function syori2() {
~~~
~~~ syori2(); 処理2
処理1 ~~~
~~~ }
syori3(); function syori3() {
syori2(); syori3(); ~~~
処理3
?> ?> ~~~
}
?>
sample1.php sample2.php
matome.php
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
84. ◆5)実装のコツとサンプル
5-2.同じ処理は「まとめる」
◆「まとめる」の考え方 <?php
function syori2() {
<?php ~~~
処理2
include(“matome.php”); ~~~
}
syori2(); function syori3() {
syori3(); ~~~
syori3(); 処理3
~~~
?> }
?>
sample2.php matome.php
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
85. ◆5)実装のコツとサンプル
5-2.同じ処理は「まとめる」
◆ include()文の使い方 <?php
function syori2() {
<?php ~~~
処理2
include(“matome.php”); ~~~
}
syori2(); function syori3() {
include() 文は、別ファイルの ~~~
syori3();
ソースコード(php, html)を全て 処理3
syori3();
読み込んでくれます。 ~~~
?> }
?>
sample1.php matome.php
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
86. ◆5)実装のコツとサンプル
5-2.同じ処理は「まとめる」
◆関数の作り方、使い方
<?php ・「関数」を自分で作る
function syori2() {
~~~ <?php
処理2
~~~ function 関数名(引数) {
} /*
function syori3() { * 好きなように
~~~ * 処理を書く
処理3
~~~
*/
} }
?>
?>
matome.php
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
87. ◆5)実装のコツとサンプル
5-2.同じ処理は「まとめる」
◆関数の作り方、使い方
・「関数」を自分で作る function
…キーワードです。絶対必要。
<?php
関数名
function 関数名(引数) { …好きな名前でどうぞ。英語で
/* 動詞+名詞にすることが多い。
* 好きなように connectDBとか。
* 処理を書く
*/ 引数
return ほげほげ; …関数を使うときに、値を受け取る
} ことが出来ます。受け取った値は
関数内で使えます。変数と同様に、
?> 関数名($hikisu)と書きます。
引数は無くてもOKです。
return
…関数を呼び出した元に、好きな値を
返すことが出来ます。
返さなくても(省略しても)OK。
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
92. ◆5)実装のコツとサンプル
5-3.「同じ処理」を見つけよう
esc.phpのサンプル
<?php
function h($str) {
return htmlspecialchars(trim($str));
}
function m($sql) {
return mysql_real_replace_string(trim($sql));
}
?>
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
94. ◆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;
}
?>
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.
96. AW技能五輪 第4回 PHPセミナー
必要な機能と実現方法
を確認しようの回
お疲れ様でした!
資料作成・サポート:電設部技能五輪プロジェクト
AW技能五輪 第一回 PHPセミナー (c) 2009 Akihiro Tsukada, JO-GORIN-PJT.