ch03 — SELECT 基本 / fetchAll / ループ
スライドで見るこの章を AI と学ぶ
演習問題の詳細
この章の演習問題の内容を読めます。実際に手元で解くには教材リポジトリを clone してください。
ドリル 01 — 全件 SELECT して "id: name" 形式で出力
問題
users テーブル (id, name, age) には次の 3 行が入っています。
| id | name | age |
|---|---|---|
| 1 | 太郎 | 20 |
| 2 | 花子 | 25 |
| 3 | 次郎 | 30 |
id の昇順で全件 SELECT し、各行を id: name の形式 (id と name を : で連結) でちょうど 3 行出力してください。
期待される出力:
1: 太郎
2: 花子
3: 次郎
ヒント
SELECT id, name FROM users ORDER BY idforeach ($pdo->query($sql) as $row) { ... }- 出力は
echo $row['id'] . ': ' . $row['name'] . "\n";
🧪 ブラウザで試す
スライドのコードを写経して ▶ 実行、自分で書いて 📝 採点 で答え合わせ。初回のみ PHP ランタイム読込で数秒かかります。
PHP ランタイム未読込
ドリル 02 — 件数を出力
問題
users テーブルの行数を SELECT COUNT(*) で取得し、その数字をちょうど 1 行で出力してください。
users には 3 行入っています (前の drill と同じデータ)。
期待される出力:
3
ヒント
SELECT COUNT(*) AS cnt FROM users- 1 行 1 列だけ返るので
$stmt->fetch(PDO::FETCH_ASSOC)で 1 行だけ取り出す echo $row['cnt'] . "\n";
🧪 ブラウザで試す
スライドのコードを写経して ▶ 実行、自分で書いて 📝 採点 で答え合わせ。初回のみ PHP ランタイム読込で数秒かかります。
PHP ランタイム未読込
ドリル 03 — name 列だけを取り出して改行区切りで出力
問題
users テーブルから name 列だけを id 昇順で取得し、各名前を 1 行ずつ出力してください。
users には 3 行入っています (前の drill と同じデータ)。
期待される出力:
太郎
花子
次郎
ヒント
SELECT name FROM users ORDER BY idforeach ($pdo->query($sql) as $row) { echo $row['name'] . "\n"; }fetchAllを使って配列にしてforeachでも OK
🧪 ブラウザで試す
スライドのコードを写経して ▶ 実行、自分で書いて 📝 採点 で答え合わせ。初回のみ PHP ランタイム読込で数秒かかります。
PHP ランタイム未読込
演習問題(3問)
サイト内で問題文・雛形・解答例を確認できます。実際に手元で解くには教材リポジトリを clone してください。
完了にすると進捗に反映されます