สำหรับบทความนี้ ผมสมมุติว่าผู้อ่านเข้าใจเรื่องเกี่ยวกับพื้นฐานของการเขียนโปรแกรมภาษา PHP หรือมีความรู้เบื้องต้นกับ mysql ซึ่งเป็นโปรแกรมฐานข้อมูล รู้จักตัวจัดการฐานข้อมูล เช่น phpmyadmin เป็นต้น เพราะผมจะไม่ได้กล่าวถึงรายละเอียดในส่วนนี้ หากผู้อ่านต้องการศึกษาเพิ่มเติม สามารถหาอ่านได้จากเว็บไซต์ทั่วไป และที่สำคัญบทความนี้ จะต้องทำงานบน webserver อาจจะจำลองบนเครื่องคอมพิวเตอร์ แบบ localhost หรือการใช้งานบน server
ขั้นแรก ขอให้สร้างฐานข้อมูลขึ้นมาก่อน ผมยกตัวอย่าง ชื่อ construct_db
สร้างตารางข้อมูลขึ้นมา 1 ตาราง
CREATE TABLE `scores` (
`id` INT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR( 20 ) NOT NULL ,
`score` INT NOT NULL ,
PRIMARY KEY ( `id` )
);
สร้าง Folder ขึ้นมาใน wevserver ผมจำลองด้วย appserve ผมก็เข้าไปที่ C:\AppServ\www แล้วสร้าง Folder ชื่อ construct เพื่อจำลองว่ามีเว็บชื่อ construct อยู่บนเครือข่ายอินเทอร์เน็ต และสร้างไฟล์ php ขึ้นมา 2 ไฟล์ ดังนี้
ไฟล์สำหรับการบันทึกข้อมูลคะแนน ชื่อ
savescores.php
$dbu = "root"; //ชื่อผู้ใช้ฐานข้อมูล
$dbp = "password"; //รหัสผ่านฐานข้อมูล
$host = "localhost"; //MySQL server
$db_name="construct_db"; //ชื่อฐานข้อมูล
$tbl_name="scores"; // Table name
$dblink = mysql_connect($host,$dbu,$dbp);
$seldb = mysql_select_db($db_name);
if(isset($_GET['name']) && isset($_GET['score'])){
$name = strip_tags(mysql_real_escape_string($_GET['name']));
$score = strip_tags(mysql_real_escape_string($_GET['score']));
$sql = mysql_query("INSERT INTO $tbl_name (`id`,`name`,`score`) VALUES ('','$name','$score');");
if($sql){
echo 'Your score was saved. Congrats!';
}else{
echo 'There was a problem saving your score. Please try again later.';
}
}
mysql_close($dblink);
?>
ไฟล์สำหรับการอ่านข้อมูลคะแนน ชื่อ
getscores.php
header('Access-Control-Allow-Origin: *');
$dbu = "root"; //ชื่อผู้ใช้ฐานข้อมูล
$dbp = "password"; //รหัสผ่านฐานข้อมูล
$host = "localhost"; //MySQL server
$db_name="construct_db"; //ชื่อฐานข้อมูล
$tbl_name="scores"; // Table name
mysql_connect($host,$dbu,$dbp) or die("cannot connect");
mysql_select_db($db_name) or die("cannot select DB");
// Retrieve data from database
$sql="SELECT * FROM $tbl_name ORDER BY score DESC LIMIT 10";
$result=mysql_query($sql);
while($rows=mysql_fetch_array($result)){
echo $rows['name'] . "\t\t" . $rows['score'] . "\n";
}
mysql_close();
?>
ต่อไปก็สร้าง Project ของ Construct ขึ้นมา
เพิ่ม textbox ใหม่ ชื่อ txtPlayerName เพื่อให้กรอกชื่อผู้เล่น
และเพิ่ม textbox อีกหนึ่งอัน ชื่อ txtPlayerScore เพื่อให้กรอกคะแนนที่จะบันทึก
เพิ่มปุ่มขึ้นมา ตั้งชื่อว่า submit ใช้เพื่อกดให้บันทึกคะแนน
จะได้หน้าตาประมาณนี้
ต่อไปจะเพิ่มคำสั่ง สำหรับบันทึกคะแนนลงในฐานข้อมูล อันดับแรก ต้องเพิ่มวัตถุแบบ ajax เข้ามาก่อน เพื่อใช้ในการติดต่อรับ-ส่งข้อมูลจากไฟล์ php ที่เราได้สร้างเอาไว้
เพิ่มเหตุการณ์ที่ event sheets สำหรับการคลิกที่ปุ่ม save โดยเลือก add event ตามด้วย ok button และ on clicked แล้วเพิ่มการกระทำ add action ด้วย ajax
เลือกคำสั่ง Post to URL
กำหนดค่าดังนี้
Tag = “PostScore”
URL = “http://localhost/construct/savescores.php?name=" & txtPlayerName.Text & "&score=" & txtPlayerScore.Text”
Data = “”
Method = “GET”
(ตามตัวอย่าง จำลองด้วย localhost ซึ่งได้ติดตั้ง webserver บนคอมพิวเตอร์)
เมื่อทดสอบการทำงานของเกม จะได้ลักษณะ ดังนี้
เมื่อกรอกข้อมูล แล้วคลิกปุ่มบันทึก ข้อมูลจะถูกส่งไปยังไฟล์ savescores.php ซึ่งจะทำการบันทึกข้อมูลลงในฐานข้อมูล
เมื่อสามารถบันทึกข้อมูลลงในฐานข้อมูลได้แล้ว ต่อไปจะเป็นการอ่านข้อมูลจากฐานข้อมูลมาแสดง ซึ่งผมได้เขียนไว้ในบทความ
ตอนที่ 2 การเชื่อมต่อฐานข้อมูล