🎡 數據庫樂園 🎢

通過遊戲學習 PHP 與 MySQL 的互動!

🎫 步驟 1 – 取得樂園門票

函數: mysqli_connect()

用途: 建立網絡伺服器(PHP)與數據庫之間的連接

語法: mysqli_connect(數據庫伺服器位址, 使用者名稱, 使用者密碼, 哪個數據庫)

$link = mysqli_connect( ?, ?, ?, ? );

請從背包拖曳正確的積木到下方區域:

數據庫伺服器位址
使用者名稱
使用者密碼
哪個數據庫

🎟️ 步驟 2 – 申請樂園資訊許可證

函數: mysqli_query()

用途: 在已連接的數據庫上執行SQL指令並取得結果

語法: mysqli_query(門票, SQL語句)

$result = mysqli_query( ?, ? );

請從背包拖曳門票($link)和SQL許可證到下方區域:

拖曳 $link 門票到這裡
拖曳 SQL 許可證到這裡

📇 步驟 3 – 從信封中取出資訊卡

函數: mysqli_fetch_assoc()

用途: 從結果中取得下一行資料(格式為關聯式陣列)

為什麼要用 while? 因為信封裡有很多張卡片,需要一張一張取出來!

為什麼要用 $row? $row 就像一個托盤,用來裝載每次取出的卡片!

while ($row = mysqli_fetch_assoc($result)) { // $row 是一個關聯式陣列,包含這一行的所有欄位
    echo $row["id"] . ": " . $row["game_name"];
}

🎮 互動操作區

信封中還有 5 張卡片

0%

🔄 While 循環狀態:

1 檢查:信封還有卡片嗎?
2 取出:將卡片放入 $row
3 處理:讀取 $row 的內容
4 重複:回到步驟 1

📋 已取出的資訊卡

尚未取出任何卡片

💡 關鍵概念解說:

  • while 循環:像是不斷重複「打開信封、取出卡片」的動作,直到信封空了為止
  • $row 變數:每次取出一張卡片,就放在這個托盤上,方便我們讀取
  • 關聯式陣列:卡片上的資訊是用「欄位名稱」來標示的,例如 $row["game_name"]
  • 回傳 false:當信封空了,mysqli_fetch_assoc() 會回傳 false,while 循環就結束了

🔢 可選步驟 – 查詢結果總共有多少行

函數: mysqli_num_rows()

用途: 在打開信封前,先查看裡面有多少張資訊卡

語法: mysqli_num_rows($result)

範例: $count = mysqli_num_rows($result);

// 在開始讀取資料前,先知道有多少筆資料 $count = mysqli_num_rows($result); echo "總共有 " . $count . " 筆資料";

🎯 遊戲玩法說明:

當你在步驟2取得信封($result)後,可以使用這個函數來「偷看」信封中有多少張卡片,而不需要真的打開它!

這在實際應用中很有用,例如:分頁顯示、顯示總數等。

👆
點擊信封查看數量
🎒 背包
📦 步驟 1 積木
"localhost:8889"
"root"
"password"
"ictdb"
🗄️ 數據庫檢視
數據庫伺服器位址: localhost:8889
數據庫名稱: ictdb
📊 可選擇的數據表
games
機動遊戲資料表
restaurants
餐廳資料表
shops
商店資料表
events
活動資料表
tickets
門票資料表