ここではコース一覧表示処理を実装します。
以下に指示に従ってプログラムを開発してください。
ファイル一覧
処理 | ファイル | 概要 |
---|---|---|
コース一覧表示処理 | courses/index.php |
コース一覧画面を表示する |
画面仕様
コース一覧画面(index.php
)
index.php
の実装
概要
- コース一覧画面を表示する
処理記述
-
PDO
インスタンスを生成する引数 値 DSN "mysql:host=localhost;dbname=eldb;charset=utf8mb4"
ユーザ名 root
パスワード admin
オプション フェッチモード: PDO::FETCH_ASSOC
エラーレポート:PDO::ERRMODE_EXCEPTION
エミュレート:false
-
select
文を定義する-
select co.id, co.title, co.learning_time, ca.title category_title from courses co left join categories ca on co.category_id = ca.id order by co.id
-
-
定義した
select
文のプリペアドステートメントを作成する -
プリペアドステートメントを実行する
-
courses
レコードの一覧をフェッチする -
【例外(
PDOException
)が発生した場合】- エラーログにエラーメッセージを出力する
PDOException
のエラーメッセージを出力する- エラー画面にリダイレクトする
- 処理を終了する
-
HTMLを出力する
courses
レコードの一覧を出力する
index.php
<?php
// TODO
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>PHP DB</title>
</head>
<body>
<h3>Courses - Index</h3>
<hr>
<table border="1">
<tr>
<th>ID</th>
<th>TITLE</th>
<th>L-TIME</th>
<th>CATEGORY</th>
</tr>
<?php foreach ($courses as $course) { ?>
<tr>
<td><?= htmlspecialchars($course["id"]) ?></td>
<td><?= htmlspecialchars($course["title"]) ?></td>
<td><?= htmlspecialchars($course["learning_time"]) ?></td>
<td><?= htmlspecialchars($course["category_title"]) ?></td>
</tr>
<?php } ?>
</table>
</body>
</html>
動作確認
コマンドラインからビルトインWebサーバを起動します。
$ php -S localhost:8080
ブラウザから以下のURLにアクセスします。
https://〜.vfs.cloud9.ap-northeast-1.amazonaws.com/courses/index.php
上記のようにコース一覧画面が表示されることを確認します。