การเชื่อมต่อกับฐานข้อมูล mysql ผมได้นำเสนอไว้ที่บทความ การเชื่อมต่อฐานข้อมูล สามารถย้อนไปศึกษาเพิ่มเติมได้ ผมจะไม่ขอกล่าวย้อนอีกครั้งนะครับ ในบทความนี้ขอสมมุติว่า เข้าใจเรื่องการเชื่อมต่อฐานข้อมูลแล้ว และการอ่านฐานข้อมูลด้วย AJAX แล้วนะครับ ฐานข้อมูลที่ผมจะใช้ในการนำเสนอวันนี้ คือ ตารางคะแนนเกม ชื่อ game สร้างตารางข้อมูล และใส่ข้อมูลเบื้องต้นไว้เล็กน้อยนะครับ มีรายละเอียดตาราง ดังนี้
สร้างไฟล์สำหรับอ่านข้อมูลจากฐานข้อมูล mysql เป็นไฟล์ชื่อ getuser.php ด้วยคำสั่ง ดังนี้
header('Access-Control-Allow-Origin: *');
header("Content-Type: text/html; charset=UTF-8");
$host = "localhost"; //database location
$user = "root"; //database username
$pass = "mypassword"; //database password
$db_name = "mydatabase"; //database name
//database connection
$link = mysql_connect($host, $user, $pass);
mysql_select_db($db_name);
// Retrieve data from database
$sql="SELECT gID,userID, level, score FROM game";
$result=mysql_query($sql);
while($rows=mysql_fetch_array($result)){
echo $rows['gID'] . "|" .$rows['userID'] . "|" . $rows['level']."|" . $rows['score']. ",";
}
mysql_close();
?>
อย่าลืมเปลี่ยนชื่อฐานข้อมูล ชื่อผู้ใช้และรหัสผ่าน เป็นของตัวเองนะครับ ขึ้นอยู่กับว่ากำหนดไว้ตอนติดตั้ง appserv เป็นอะไร แต่ละคนก็ไม่เหมือนกัน แล้วนำไปเก็บไว้ในตำแหน่งของ www ที่ได้ติดตั้งไว้แล้ว กรณีของผม ผมสร้างไว้ใน /www/construct/ ทดสอบเรียนใช้งาน ดูว่ามีข้อมูลอะไรเขียนออกมาหรือเปล่า ผมทดสอบโดยพิมพ์ http://localhost/construct/getuser.php ก็จะมีข้อมูลจากฐานข้อมูลแสดงออกมา
ข้อมูลแต่ละตัวจะคั่นด้วย | และแต่ละชุดข้อมูลจะคั่นด้วย , ซึ่งอาจจะกำหนดเป็นอย่างอื่นได้ในไฟล์ getuser.php ตามที่ผู้เขียนเกมเห็นเหมาะสมนะครับ เพราะเราจะใช้เป็นตัวอ้างอิงในการตัดแบ่งข้อมูล
ต่อไปมาเริ่มงานที่โปรแกรม construct 2 สร้างโปรเจคใหม่ หรือจะใช้โปรแกรมเดิมก็ได้ครับ
เพิ่มวัตถุแบบ array เข้ามาที่เกมของเรา ตั้งชื่อเป็น datagame
แล้วแทรกวัตถุ AJAX เข้ามาในเกมของเรา
เพิ่มเหตุการณ์ เมื่อมีการทำงานกับ layout ใหม่
Add event --> System --> On start of layout
เพิ่มคำสั่งในการเชื่อมต่อฐานข้อมูลด้วย AJAX ดังนี้
Add action --> AJAX --> Request URL
แล้วกำหนดค่า ดังนี้
Tag = "getuser" คือการกำหนดชื่อให้กับการทำงานของ AJAX
URL = "http://localhost/construct/getuser.php" คือ การอ่านข้อมูลจากไฟล์ php ที่เราได้สร้างไว้แล้ว
ขั้นต่อไป นำข้อมูลที่ได้จากการอ่านฐานข้อมูล mysql มาลงใน array ที่เราได้สร้างเอาไว้แล้ว
Add event --> AJAX --> on completed --> "getuser"
คือ เหตุการณ์ที่จะทำงานเมื่ออ่านข้อมูล AJAX จาก tag "getuser" สำเร็จแล้ว
กำหนดขนาดของ array ให้มีขนาดเท่ากับชุดข้อมูลที่อ่านมา
Add action --> Array datagame --> Set size
กำหนด width เท่ากับ จำนวนชุดข้อมูลจากการตัดข้อความด้วยเครื่องหมาย , ด้วยคำสั่งtokencount(AJAX.LastData,",")-1
Height เท่ากับ 4 คือ ให้มี 4 คอลัมน์ ตามข้อมูลที่มีในแต่ละชุด
วน loop เพื่อนำข้อมูลไปเก็บยัง array ที่สร้างไว้ ด้วยคำสั่ง ดังนี้
การกำหนดตำแหน่งของข้อมูลใน array กำหนดดังนี้
หลักการทำงานของคำสั่ง token
คำสั่ง token จะใช้ในการตัดกลุ่มคำออกเป็นกลุ่มย่อยๆ ตามเงื่อนไขของตัวแบ่งที่กำหนด คำสั่งที่สำคัญที่ใช้บ่อย ๆ คือ
tokencount เป็น คำสั่งที่ใช้ในการนำจำนวนกลุ่มย่อยของคำที่แบ่งออกมาได้ เช่น tokencount("abxacxayxaz","x") คือนับจำนวนกลุ่มย่อยที่แบ่งด้วยตัว x จะได้ค่า 4
tokenat เป็นคำสั่งที่อ้างถึงกลุ่มคำย่อยที่ถูกแบ่งด้วยตัวแบ่งคำ เช่น tokenat("abxacxayxaz",0,"x") คือ กลุ่มย่อยที่ 0 จากการแบ่งคำด้วยตัว x จะได้ข้อความ ab ออกมา
เมื่อทดสอบการทำงานของโปรแกรม จะพบข้อมูลใน array ตามข้อมูลที่ได้อ่านมาจากฐานข้อมูล
เยี่ยมเลยครับ
ตอบลบขอบคุณครับ
ลบ