# 三年生の課題
毎週水曜日8時30分から会議をやる予定
## 課題予定(シラバス的な)
6/10 データベースが動くCentos
6/17 基礎sql
6/24 ストアドプロシージャをやります。
未定
6/24 PHP の環境を構築
7/08 htmlを触ってみよう
7/15 PHPを触ります(掲示板作成)
7/29 掲示板完成
・未定
8/~~ 認証機能を付ける(未定)
## 実際に行った課題たち
課題1 6/10まで データベースが動くCentOS作成
課題2 6/17まで 基礎sql
課題3 6/24まで ストアドプロシージャ
課題4 7/1まで(テスト前最後)html基礎編
課題5 7/22まで(テスト終わったら)
課題6 7/29までgithubのアカウントを作成しよう
課題7 8/12までガチャページの実装
課題8 9/1までデータベースの仕様決定
## 課題
### 課題1 6/10まで データベースが動くCentOS作成
[参考url DBについて](https://qiita.com/nooboolean/items/7efc5c35b2e95637d8c1)
成功例
コマンドラインでmysql -vでバージョンが出てきたら完成
ルートユーザの作成までやってくれるとなおよし!
(※6/4追記)
なるべくなら仮想環境にsshができるようにしてほしい
### 課題2 6/17まで 基礎sql
[参考url](https://prog-8.com/docs/mysql-database-setup)
上記のURLに沿って何となくデータベースを活用してほしい、、
これがおわったら、キーワードをすこし調べてみるのもよいかも
ふわっとわかるくらいの状態ならOK!
キーワード
- 外部キー
- where文
- sqlインジェクション
- like文(多分次当たりの課題で使う)
### 課題3 6/24まで ストアドプロシージャ
データベースに以下のコマンド群をコピペ
```
CREATE DATABASE `ictsc` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `ictsc`;
CREATE TABLE `Departments` (
`department_id` int(11) NOT NULL,
`department_name` varchar(20) DEFAULT NULL,
PRIMARY KEY (`department_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `Departments` (`department_id`, `department_name`) VALUES
(1, '総務'),
(2, 'デザイン'),
(3, '開発');
CREATE TABLE `Employees` (
`employee_id` int(11) NOT NULL,
`name` varchar(20) DEFAULT NULL,
`birthday` date DEFAULT NULL,
`sex_id` int(11) DEFAULT NULL,
`department_id` int(11) DEFAULT NULL,
`permit_id` int(11) DEFAULT NULL,
PRIMARY KEY (`employee_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `Employees` (`employee_id`, `name`, `birthday`, `sex_id`, `department_id`, `permit_id`) VALUES
(1001, '東京 太郎', '1984-10-02', 0, 2, 2),
(1002, '桜庭 花男', '1980-05-06', 0, 1, 3),
(1003, '神奈川 太郎', '2001-04-05', 0, NULL, 1),
(1004, '埼玉 小太郎', '1972-12-22', 0, 2, 2),
(1005, '滝本 宗次郎', '2000-02-13', 0, 1, 1),
(1006, '千葉 太郎坊', '1966-03-02', 0, 1, 1),
(1007, '飯島 れん', '1995-04-01', 0, 3, 3),
(1008, '葉月 もずく', '1995-11-03', 0, 2, 3),
(1009, '大和 和子', '1996-10-01', 1, 1, 3),
(1010, '涼風 青葉', '2001-02-02', 1, 2, 2),
(1011, '望月 紅葉', '2000-01-17', 1, NULL, 1),
(1012, '阿波根 うみこ', '1989-07-20', 1, 3, 3),
(1013, '鳴海 ツバメ', '1999-05-16', 1, NULL, 1),
(1014, '飯島 ゆん', '1997-12-06', 1, 2, 2),
(1015, '滝本 ひふみ', '1995-01-23', 1, 2, 2),
(1016, '桜 ねね', '2000-05-05', 1, NULL, 1),
(1017, '遠山 りん', '1993-12-03', 1, 2, 2),
(1018, '葉月 しずく', '1983-05-22', 1, 1, 3),
(1019, '八神 コウ', '1993-08-02', 1, 2, 3),
(1020, '篠田 はじめ', '1998-01-01', 1, 2, 2);
CREATE TABLE `Permit` (
`permit_id` int(11) NOT NULL,
`permit_name` varchar(20) DEFAULT NULL,
PRIMARY KEY (`permit_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `Permit` (`permit_id`, `permit_name`) VALUES
(1, 'none'),
(2, 'read only'),
(3, 'read and write');
CREATE TABLE `Sex` (
`sex_id` int(11) NOT NULL,
`sex_name` varchar(20) DEFAULT NULL,
PRIMARY KEY (`sex_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `Sex` (`sex_id`, `sex_name`) VALUES
(0, '男'),
(1, '女');
```
課題
1. 男のみ取得して表示する。カラムは「employee_id, name, birthday, sex_name」
2. 女のみ取得して平均年齢以上の人のみ表示する。カラムは
「employee_id, name, age(年齢計算する), sex_name」
3. カラム employee_id, name, age, department_name, permit_name」をすべて表示する
条件:◯◯_idの内容は今後変更される可能性がある。(男:0が男:1などに変更)
この3つのストアドプロシージャを作成
### 課題4 7/1まで(テスト前最後) html基礎編
htmlの基礎学習(html,css,javascriptとはどんなものか)、
サーバサイド言語とフロントエンド言語の違いについて、
もしかしたらテスト明けの課題から二人で分岐する可能性あるかも
触りたい言語考えといて(これが結構重要)
何個でもいいけど決めやすさ的に1つずつ出してもらえると嬉しい
あと、マジでマイナーな奴だとさすがにサポートできないと思うので、まぁメジャーな奴で、、
### 課題5 7/22まで(テスト終わったら) 環境構築
PHPの環境を構築することを目的とします。
PHP側からデータベースにアクセスできたら勝ちです。
下に具体的な到達目標を書いておくのでできる限りやってください。(心折れたら遠慮せずやめてね)
多分下のURLの通りにやるとうまくいくと思います。
https://kuchikomiwebsite.com/php-mysql/post-406/#outline__4_2
途中からになってると思うので、いい感じなとこから参考にするといいと思う。
1まで頑張ってほしい、2まで行ったらうれしい、3まで出来たら最高!
ぶっちゃけ最近のweb開発の観点から言うと仮想環境で動かすことはあまりしないです(効率的に)。まぁでもLinuxを触っておくことはたぶんいずれか大切になってくると思うので(主にサイバーレンジあと、サイバーレンジ)、phpの動作環境を作りましょう。自分で持っておくといろいろ楽になると思うので、
到達目標
1. PHPファイルを/var/www/html以下にindex.php作成し、仮想環境から ``curl localhost/index.php``を実行webページっぽいものが表示されたら成功(appacheの画面じゃないよ)
2. 作成したindex.phpからデータベースにアクセスする(データベースへのアクセス法は調べれば出てくると思う)
3. 自身のPCからそのindex.phpを見る
### 課題6 7/29まで githubのアカウントを作成しよう
二人とも3まで辿り着いてくれて先輩としてはうれしい限りです。
Web開発はどれだけプロダクト(成果物)があるかなので、githubにポートフォリオ(自分が今までやってきたこと)を挙げておくといろいろ便利です。
リモートのレポジトリを作成してそれを見れるwebページを投げておいてください。
### 課題7 8/12まで ガチャページの実装
二人には別々のガチャページを開発してもらおうと思います。
html,css,javascriptを使って作ってください。中学生にダイレクトでみられる場所なのでなるべく豪華な奴が望ましいです。もちろんフリーの素材ならgif画像とか写真とか使ってもらって大丈夫です。
企画の仕様的に抜ける、もしくは使われない可能性は高いですがフロントエンドの開発の一環だと思って頑張ってください。
そろそろこっちも本格的に忙しくなってくるのでたぶんこれからはこんな感じで長めの課題を出していく形だと思います。
瀬尾君 フリーでガチャ作ってね
山本君 自動販売機的なの作ってみてね
### 課題8 9/1まで 掲示板の作成(データベースの構造)
これから何回かに分けて、認証機能付き掲示板サイトの開発を行います。
今年の3年はどうなるのかわからないけど、3年の後期の実験で俺らはやったので先にデータベースとか触れとくとお得感あった。
ということで、まずはデータベースの仕様を固めることを課題とします。
ユーザ認証機能付きなので、テーブルは二つでusers(ユーザ情報を入れるテーブル)とcomments(ユーザごとのコメント)の二つでデータベースの構造を考えてください。
webアプリの開発の手順としてはサイト構成、DB構成、開発ってな感じで開発を進めていきます。