Menu

Friday, December 7, 2012

[AS3] วิธีโหลดตัวแปรจาก MySQL
[AS3] How to Load Variables from MySQL

AS3 ไม่สามารถโหลดตัวแปรจาก MySQL ได้โดยตรง ตัวแปรจะต้องถูกโหลดผ่านทาง PHP หลักการทำงานคือ AS3 จะทำการเรียกและจัดเก็บข้อมูลผลลัพธ์จากหน้า PHP โดยที่ PHP จะทำการเชื่อมต่อและดึงค่าจาก MySQL แล้วทำการพิมพ์ผลลัพธ์ออกมาทางหน้าเว็บตามรูปแบบข้อความสำหรับการโหลดตัวแปรของ AS3 
AS3 cannot load variables from MySQL directly. The variables must be loaded by using PHP to get data from MySQL. The principle is AS3 call and get the results from PHP page, PHP connect and retrieve data from MySQL then print the results in correct format for loading variables in AS3


ตัวอย่างสำหรับการโหลดตัวแปรของ AS3 จาก MySQL เป็นตามด้านล่าง
The example of loading variables in AS3 from MySQL is shown as below

สำหรับ 
MySQL, สร้างตารางชื่อ test ซึ่งมีโครงสร้างตารางตามด้านล่าง
For MySQL, create a table which name test which has table structure as below

  1. CREATE TABLE `test` (
  2.           `col` varchar(50) NOT NULL
  3. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
หลังจากสร้างตารางเรียบร้อยแล้ว ให้ใส่ค่าลงไปในตาราง test ตามด้านล่าง
After you create a table, insert the value into test as below
  1. INSERT INTO `test` VALUES ('test select');

สำหรับ PHP, สร้างไฟล์ PHP ชื่อ select.php และใส่โค้ดตามด้านล่าง
For PHP, create a new PHP file which name select.php and insert PHP code as below
  1. <?php
  2.           mysql_connect("localhost","root","1234");
  3.           mysql_select_db("test");
  4.           mysql_query("set names utf8");
  5.           $result=mysql_query("select * from test");
  6.           $row=mysql_fetch_assoc($result);
  7.           $key=array_keys($row);
  8.           for($i=0;$i<count($key);$i++){
  9.                     if($i>0)
  10.                               echo "&";
  11.                     echo $key[$i]."=".$row[$key[$i]];
  12.           }
  13. ?>
ข้อความที่ปรากฏบนหน้า PHP ต้องอยู่ในรูปแบบ "variable_name=variable_value&variable_name=variable_value&..."
The output string from PHP must be "variable_name=variable_value&variable_name=variable_value&..." 

ในบรรทัดที่ 2, คุณต้องเปลี่ยนจาก localhost เป็นชื่อโฮสต์ของคุณ, root เป็นชื่อผู้ใช้ของคุณ และ 1234 เป็นรหัสผ่านของคุณ
On line 2, you must change localhost to your host name, root to your username, and 1234 to your password

สำหรับ AS3, สร้างไฟล์ ActionScript 3.0 ใหม่ และใส่โค้ดตามด้านล่าง
For AS3, create new ActionScript 3.0 and insert AS3 code as below
  1. import flash.events.*;
  2. import flash.net.*;

  3. var myLoader:URLLoader = new URLLoader();
  4. myLoader.dataFormat=URLLoaderDataFormat.VARIABLES;
  5. myLoader.load(new URLRequest("http://localhost/select.php"));
  6. myLoader.addEventListener(Event.COMPLETE, handleLoadSuccessful);
  7. myLoader.addEventListener(IOErrorEvent.IO_ERROR, handleLoadError);
  8. function handleLoadSuccessful(evt:Event):void
  9. {
  10.           trace(evt.target.data);
  11. }  
  12. function handleLoadError(evt:IOErrorEvent):void
  13. {
  14.           trace("Cannot Load");
  15. }
กดปุ่ม Ctrl+Enter เพื่อรันสคริปต์ ซึ่งผลลัพธ์ที่ได้คือ col=test%20select บนหน้าต่าง OUTPUT
Press Ctrl+Enter to run script then the result is shown as col=test%20select on the OUTPUT window

ในบรรทัดที่ 11คุณสามารถใช้ evt.target.data.col แทน evt.target.data เพื่อเลือกเฉพาะตัวแปร col ซึ่งผลลัพธ์ที่ได้คือ test select บนหน้าต่าง OUTPUT
On line 11, you can use evt.target.data.col instead of evt.target.data to select the variable name col which  the result is shown as test select on the OUTPUT window

No comments:

Post a Comment