勇闖鵲橋II:資料庫 靜宜大學資管系 楊子青
Step 1 建立關聯表,設定欄位
db4free.net使用phpMyAdmin工具 https://mysql8.db4free.net/phpMyAdmin/ 輸入使用者名稱及密碼,進入後點選資料庫名稱
新增關聯表 關聯表名稱: FlappyBird CURRENT_TIMESTAMP
手動輸入一筆資料進行測試 db4free.net主機所在時區,比我們慢(7個小時)
Step 2 上傳使用者姓名及成績
撰寫UploadScore.php,上傳網頁空間 header("Content-Type:text/html; charset=utf-8"); $con = mysqli_connect("mysql8.db4free.net","tcyang","123456","pucsim2017", "3307"); // Check connection if (mysqli_connect_errno()) { echo "無法連線到MySQL: " . mysqli_connect_error(); } $GameUser = $_POST['GameUser']; $GameScore = $_POST['GameScore']; // Perform queries $sql="INSERT INTO FlappyBird (GameUser,GameScore) VALUES ('$GameUser','$GameScore')"; if (mysqli_query($con,$sql)){ echo "您的紀錄已上傳成功"; else { echo "您的紀錄上傳失敗"; mysqli_close($con); ?>
運用Web元件與網路連線
設定網址及傳送參數,以上傳成績
Step 3 成績排行查詢(PHP程式)
撰寫ListScore.php,上傳網頁空間 header("Content-Type:text/html; charset=utf-8"); $con = mysqli_connect("mysql8.db4free.net","tcyang","123456","pucsim2017", "3307"); // Check connection if (mysqli_connect_errno()) { echo "無法連線到MySQL: " . mysqli_connect_error(); } // Perform queries mysqli_query($con,"SET CHARACTER SET UTF8"); $sql="SELECT * FROM FlappyBird ORDER BY GameScore DESC, GameDate DESC"; $result = mysqli_query($con,$sql); $json = array(); if(mysqli_num_rows($result)){ while($row=mysqli_fetch_assoc($result)){ $json[]=$row; echo urldecode(json_encode($json)); mysqli_close($con); ?>
執行ListScore.php,對照資料庫 http://www1.pu.edu.tw/~tcyang/ListScore.php
使用Online JSON Viewer觀看 http://jsonviewer.stack.hu/ Text頁籤,選擇Load JSON data按鈕,輸入JSON檔案的網址 按viewer頁籤觀看結果
Step 4 成績排行查詢(App Inventor呼叫PHP程式,顯示結果)
新增Screen,命名為ScreenHero
切換到其他螢幕之相關程式積木
按「成績排行」按鈕,切換螢幕
切換到ScreenHero,設計使用者介面
ScreenHero程式碼 螢幕第一次載入時(初始化)執行
程式執行結果
利用JsonTextDecode,將回傳資料 轉成Json格式
Step 5 補充:運用陣列處理Json資料
讀取陣列每一筆資料的第一個欄位 讀取第一個欄位 讀取每一筆資料
顯示排行榜資訊
執行結果
補充:取得目前日期時間,並轉換格式 (請自行修改PHP及AI2程式碼) 取得系統目前日期時間 可自行修改年月日格式 改用大寫HH ,表示24小時制