ドキュメントを html ではなく xml にして、次のようにドキュメントを開始します。
<?php
header("Content-type: text/xml");
echo chr(60).chr(63).'xml version="1.0" encoding="utf-8" '.chr(63).chr(62);
これはヘッダータグを追加するだけなので、ブラウザー/フラッシュはドキュメントを XML として認識します (HTML の !DOCTYPE と同様):<?xml version="1.0" encoding="UTF-8"?>
次に、実行しているようにクエリを実行しますが、結果を有効な XML 形式でエコーします。
echo "<people>";//Create the parent node
while ($row = mysql_fetch_array($result)) {
echo "<person>";//Open child node, add values:
echo "<name>".$row[" Name"]."</name>";
echo "<age>".$row["age"]."</age>";
echo "<allergies>".$row["Allergies"]."</allergies>";
echo "<height>".$row["height"]."</height>";
echo "<weight>".$row["weight"]."</weight>";
echo "</person>";//Close child node
};
echo "</people>";//Close the parent node
?>
これは思いつきで書いたので完璧ではないかもしれませんが、有効な XML ドキュメントが生成されていることを確認するのは簡単なはずです (ブラウザでページを読み込んで、XML ビューア プラグインを取得するだけです)。うまくいかないかどうかを調べてください)、そうでない場合は調整してください。PHP から XML ページを生成するためのチュートリアルが何百万もあります。
次に、Flash アプリケーションで URLLoader クラスを使用してアクセスします。
var loader:URLLoader = new URLLoader();
//The loader class
var urlRQ:URLRequest = new URLRequest('yoursite/yourpage');
//The URL request
loader.dataFormat = URLLoaderDataFormat.TEXT;
//Use this for xml
urlRQ.method = URLRequestMethod.POST;
//Set method type (normally post)
loader.load(urlRQ);
loader.addEventListener(Event.COMPLETE,loadedData);
次に、loadedData で XML を解析します。
function loadedData(e:Event):void {
var people:XML = XML(e.target.data);//Cast this var as XML to access
//people should represent top-level ie <people>;
for each(var person:XML in people.person){//Iterate over member nodes called 'person';
trace(person.age);//XML object node names can be referenced
//directly with dot notation!
trace(person.name);//etc...
}
}
最後にもう 1 つ、PHP では mysql_ 関数は非推奨です。最近これを発見しました。今後は代わりに SQLi または PDO を使用してください。
頭のてっぺんから書いたので、試してみたほうがいいと思いますが、行き詰まった場合はコメントを残してください。見てみましょう!