Lấy dữ liệu từ Database trong AS3 qua PHP & MySQL

Trong Blog này tôi đã viết 1 bài về việc sao chép dữ liệu vào Database trong AS3 qua PHP & MySQL. Sau bài đó đã có 1 số bạn đề nghị tôi viết tiếp về quá trình ngược lại là lấy dữ liệu từ database lên. Tôi đã hứa sẽ viết về vấn đề đó từ rất lâu rồi, tuy nhiên hôm nay mới có thời gian để thực hiện lời hứa với các bạn. Để bắt đầu bài này, các bạn hãy xem lại bài “Sao chép dữ liệu vào Database trong AS3 qua PHP & MySQL (Guestbook)” trong Blog này để biết về quá trình tạo bảng và nhập dữ liệu vào database. Lúc này chúng ta đã có bảng “guestbook_table” trong database “guestbook“, và bảng này bao gồm các thành phần: name, email, subject, message và time.

Bước 1: ActionScript

Bạn tạo 1 class có tên là “App.as

package {
	
   import flash.display.MovieClip;
   import flash.events.Event;
   import flash.net.URLLoader;
   import flash.net.URLRequest;
   import flash.net.URLRequestMethod;
   import flash.text.TextField;
   import flash.events.IOErrorEvent
	
   public class App extends MovieClip {
		
      public static const URL:String = "http://localhost/guestbook/getData.php";
		
      private var _loader:URLLoader;
      private var _request:URLRequest;
		
      public function App():void {
         //output("constructor");
         loadData();
      }
      private function loadData():void {
         //output("loadData");
         var randomParam:String = "?p=" + Math.floor(Math.random() * (10000000));
         _loader = new URLLoader();
         _request = new URLRequest(URL + randomParam);
         _request.method = URLRequestMethod.POST;
         _loader.addEventListener(Event.COMPLETE, onLoadData);
         _loader.addEventListener(IOErrorEvent.IO_ERROR, onDataFiledToLoad);
         _loader.addEventListener(IOErrorEvent.NETWORK_ERROR, onDataFiledToLoad);
         _loader.addEventListener(IOErrorEvent.VERIFY_ERROR, onDataFiledToLoad);
         _loader.addEventListener(IOErrorEvent.DISK_ERROR, onDataFiledToLoad);
         _loader.load(_request);
      }
      public function onLoadData(e:Event):void {
         output("onLoadData result: " + e.target.data);
      }
      private function onDataFiledToLoad(e:IOErrorEvent):void {
         output("onDataFiledToLoad error: " + e.text);
      }
      public function output(str:String):void {
         var text:String = field.text;
         field.text = "> " + str + "\n" + text;
      }
   }
}

Bước 2: PHP

Bạn tạo 1 file “getData.php

<?php

   // defining main variables
   $dbHost = "localhost";
   $dbUser = "root";
   $dbPass = "";
   $dbName = "guestbook";
   $dbTable = "guestbook_table";
	
   // connecting and selecting database
   @mysql_connect($dbHost, $dbUser, $dbPass) or die(mysql_error());
   @mysql_select_db($dbName) or die(mysql_error());

   // getting data
   $data = "";
   $res = mysql_query("SELECT * FROM ".$dbTable." ORDER BY id") or die(mysql_error());
   while($row = mysql_fetch_object($res)) {
      $data .= "\nName: ".$row->name;
      $data .= "\nEmail: ".$row->email;
      $data .= "\nSubject: ".$row->subject;
      $data .= "\nMessage: ".$row->message;
      $data .= "\nTime: ".$row->time;
   }
   die($data);

?>

Chỉ cần 2 đoạn code đơn giản bên trên bạn đã hoàn thành việc gọi dữ liệu từ database. Bây giờ bạn chỉ việc chỉnh 1 chút ở file PHP để dữ liệu gọi lên trông sao cho đẹp mắt là được. Chúc các bạn thành công.