---
# System prepended metadata

title: 【B講座】Webディベロッパー養成講座4回目

---

# 【B講座】Webディベロッパー養成講座4回目
## 初期準備
## セクション１　データベース作成
### まずはphpMyAdminを開いて授業用のDBを作成する
#### 1. MAMPを起動
#### 2. WebStartボタンから起動トップページを表示
#### 3. ページの真ん中MySQLのタブからphpMyAdminのリンクをクリック
#### 4. 起動した画面がMySQLを管理するphpMyAdminの画面が表示されます。

#### 5. データベースタブをクリック
#### 6. データベースを作成から以下の名前で作成
```
データベース名：gs_db4
照合順序：utf8_unicode_ci
```
#### 7. 作成ボタンをクリック
左側にgs_db4というデータベースができていると思います。
現在は空っぽです。

### SQLファイルからインポートしてみよう
〇〇.sqlというSQLファイルをインポートしてデータを作成します。
#### 1. gs_db4を選択した状態でインポートタブをクリック

#### 2. ファイルを選択をクリックして配布した資料内のSQLフォルダ内のgs_db4.sqlを選択

#### 3. 実行する

#### 4.　今日の授業用DB完成

## セクション２　投稿者が判別できるアンケートシステムの構築
### データベースに1対多のリレーションを組む為のカラムを追加する
#### 1. gs_db4を選択した状態でgs_an_tableをクリック

#### 2. gs_an_tableを選択した状態で構造タブをクリック

#### 3. 中段あたりにあるカラム追加フォームからカラムを追加
`1個のカラムを追加するidの後へ`で実行

#### 4.　カラムを追加
```
user_id
int(10)
```

#### 5. 事前に登録済みのデータのuser_idは全て0になっているので1~3の任意の数字に変更

#### 6. gs_user_tableのnameの部分をuser_nameに変更

### データ登録時のログインユーザーidを保存する処理を追加
#### 1. insert.phpでまずはログインユーザーのidを取得
```
<?php
session_start();//追記！！！


//1. POSTデータ取得
省略

//ログインユーザーidを取得
$user_id = $_SESSION["user_id"];

```


#### 2. insert.phpのSQLを変更
```
INSERT INTO gs_an_table(user_id,name,email,naiyou,indate)VALUES(:user_id,:name,:email,:naiyou,sysdate())
```
bind変数も追加
```
$stmt->bindValue(':user_id', $user_id, PDO::PARAM_INT);  //Integer（数値の場合 PDO::PARAM_INT)
```

#### 3.実際にformからデータ登録してデータベースに保存されているかチェック
別のアカウントでもログインして2~3個ほどデータを登録


### アンケート一覧で投稿者名を横に表示する（リレーション先のデータ取得）
#### 1.Select.php　のSQL文をアップデート
```
SELECT * FROM gs_an_table INNER JOIN gs_user_table ON gs_an_table.user_id = gs_user_table.id 
```

ちなみに文法的には
```
SELECT * FROM 主テーブル INNER JOIN 子テーブル ON 主テーブル.キー = 子テーブル.キー 
```

＊詳しく知りたい方はこの新卒の子が書いてるQiitaが初心者にわかりやすいのでおすすめ
https://qiita.com/SuguruOoki/items/e83da54b6c78cc58e40d

#### 2.select.phpに表示処理のwhile文内を編集
```
$view .= $r["id"]."|".$r["name"]."|".$r["email"];
```
↓↓↓↓↓↓↓↓
```
$view .= $r["id"]."|".$r["name"]."|".$r["email"].$r["user_name"];
```

#### 3.カラム名重複対策のAS区
```
SELECT 主テーブル.id AS main_id 子テーブル.id AS sub_id FROM 主テーブル INNER JOIN 子テーブル ON 主テーブル.キー = 子テーブル.キー 
```