2012-01-08 5 views
0

null値を返し、私は2つの機能があります:のActionScript検索と私は、ActionScript 3用のActionScript 3</p> <p>を使用したフラッシュでは、PHPスクリプトとディスプレイを介してデータベースからデータを取得しようとしています

private var postArrayTxt:Array; 

     public function stampTwo() { 
      // constructor code 

      var stampNumber1:MovieClip = new stamp1(); 
      var stampNumber2:MovieClip = new stamp2(); 
      var stampNumber3:MovieClip = new stamp3(); 

      postArrayTxt = new Array(); 
      postArrayTxt[0] = stampNumber1; 
      postArrayTxt[1] = stampNumber2; 
      postArrayTxt[2] = stampNumber3; 
      trace("All stamps works"); 

      retrieveDetailsFromDB(); 

     } 

をデータベースから取得したデータは、retrieveDetailsFromDB()を呼び出すさまざまなムービークリップに表示されます。

public function retrieveDetailsFromDB():void { 

      var myLoader:URLLoader = new URLLoader(); 
      myLoader.dataFormat = URLLoaderDataFormat.VARIABLES; 
      myLoader.load(new URLRequest("http://localhost/Converse/stampGalore/tryout.php")); 
      myLoader.addEventListener(Event.COMPLETE, onDataLoad); 

      // Error Handling 
      myLoader.addEventListener(IOErrorEvent.IO_ERROR, onIOError); 
      myLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError); 

      // Could be an error or just a message 
      myLoader.addEventListener(HTTPStatusEvent.HTTP_STATUS, onHTTPStatus); 

      function onDataLoad(evt:Event): void { 
       //var loader:Loader = new Loader(); 
       //stamp221.addChild(loader); 
       //loader.load(new URLRequest(evt.target.data.facebookRemarks)); 
       var delimiter:String = "|^_^|"; 
       var stamp:String = evt.target.data.databaseRemarks; 
       trace(stamp); 

       var stampRemarkArr:Array = new Array(); 
       stampRemarkArr = stamp.split(delimiter); 


       for (var i:Number=0; i<stampRemarkArr.length; i++) { 
        postArrayTxt[i].text = String(stampRemarkArr[i]); 
        trace("ended"); 
       } 
      } 

      // error callbacks 

      function onIOError(evt:IOErrorEvent) { 
       trace("IOError: " + evt.text); 
      } 

      function onHTTPStatus(evt:HTTPStatusEvent) { 
       trace("HTTPStatus: " + evt.status); 
      } 

      function onSecurityError(evt:SecurityErrorEvent) { 
       trace("SecurityError: " + evt.text); 
      } 
     } 

最後に、これは私のPHPスクリプトです。

<?php 
header("Cache-Control: no-cache, must-revalidate"); 
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); 
include_once "mysqli.connect.php"; 


$sql = "SELECT remarks FROM stamp"; 
$result = $mysqli->query($sql); 
if ($mysqli->errno) 
{ 
    error_log($mysqli->error); 
    return; 
} 


$facebook = ""; 
$counter = 0; 

while ($row = $result->fetch_array()) 
{ 
    $database = $row["remarks"]; 
    $delimiter = "|^_^|"; 

    if ($counter == 0) { 
     $facebook .=$database; 
    } else { 
     //Use a delimiter "|^_^|" to seperate the records 
     $facebook .= $delimiter . $database; 
    } 

    $counter++; 
} 
$mysqli->close(); 

    echo "databaseRemarks=" . $facebook; 
?> 

PHPスクリプト自体を実行すると、データベースからデータを取得できます。ただし、Flashで実行した場合、null値が返されます。私はこの検索機能に多くの時間を無駄にしてくれたので助けてください。あなたは

答えて

0

これは動作しませんありがとう:

var stamp:String = evt.target.data.databaseRemarks; 

フラッシュは、あなたが最初にそれを解析する必要があるので、ここでフォーマットは、あなたのデータであるかを知りません。したがって、最初のデータを読み込む:

var rawData:String = evt.currentTarget.data; 

そして、それを解析:ご返信用

var parsedData:* = someFunctionToParseYourData(rawData); 
+0

こんにちは感謝を!私はデータの解析に悩まされています。私は関数に何を含めるべきか分かりません!どうもありがとう!!!!! – dada050909