我需要从MySql数据库中选择游戏编号,并将其传递给Flash游戏(ActionScript 3)。
现在我有AS3代码:
function getVars(e:Event):void{
var req:URLRequest = new URLRequest("top.php");
var loader:URLLoader = new URLLoader(req);
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, getVarComplete);
}
function getVarComplete(e:Event):void{
var gameNr.text = e.target.data;
}
这是PHP代码(我不知道所选行是如何传递到变量并将其发送到flash的)
$id = $_SESSION['id'];
$mysqli = new mysqli("localhost","xxx","xxx","xxx");
$query = "SELECT GameNr
FROM Game
WHERE FBId = '". mysql_real_escape_string($id) ."'
ORDER BY PlayTime DESC LIMIT 1";
更新:
如果我使用以下PHP:
<?php
session_start();
$id = $_SESSION['id'];
$mysqli = new mysqli("localhost","xx","xx","xx");
$query = "SELECT GameNr
FROM Game
WHERE FBId = '". mysql_real_escape_string($id) ."'
ORDER BY PlayTime DESC LIMIT 1";
if (!$mysqli->set_charset("utf8")) {
printf("Error loading character set utf8: %sn", $mysqli->error);
}
if ($result = $mysqli->query($query)) {
while ($row = $result->fetch_assoc()) {
echo $row["GameNr"];
}
$result->free();
}
$mysqli->close();
?>
www.myhost.com/top.php
返回正确值NA==
如果我使用以下AS3代码:
function onVarsLoaded(e:Event) {
var msg:String = "Communication with the server was successful.nn";
msg += "foo -> "+e.target.vars.foo+"n";
trace(msg);
}
它还我:foo -> undefined
如果我更改此
msg += "foo -> "+e.target.vars.foo+"n";
至
msg += "foo -> "+e.target.vars+"n";
它返回了错误的值:foo -> NA=%3D
试试这个:
AS3:
import net.kaegi.loaders.VarLoader;
var vl:VarLoader;
sendBtn.addEventListener(MouseEvent.CLICK,sendBtnHandler);
function sendBtnHandler(e:MouseEvent) {
// Variables sent by POST-Method:
var varObj:Object = {};
varObj.textinput0 = escape(textinput0.text);
varObj.textinput1 = escape(textinput1.text);
vl = new VarLoader("http://yourserver.com/landing.php?foo=foo", varObj);
vl.addEventListener(Event.COMPLETE, onVarsLoaded);
vl.addEventListener(Event.CANCEL, onVarsCancel);
}
function onVarsLoaded(e:Event) {
var msg:String = "Communication with the server was successful.nn";
msg += "foo -> "+e.target.vars.foo+"n";
tf_servermsg.textColor = 0x009900;
tf_servermsg.text = msg;
}
function onVarsCancel(e:Event) {
tf_servermsg.textColor = 0x990000;
tf_servermsg.text = e.target.errormsg;
}
PHP
// handle coming get
$foo = $_GET["foo"];
// handle coming post from flash
$textinput0 = $_POST["textinput0"];
$textinput1 = $_POST["textinput1"];
// send it to flash
$yourdata = "hello world"; // your mysql data here
echo $yourdata;
除了您的代码之外,还有PHP代码
$mysqli->real_query($query);
$res = $mysqli->use_result();
while ($row = $res->fetch_assoc()) {
echo $row['GameNr'];
}
请检查PHP脚本中所需数据的格式。目前php代码将以文本形式向您提供GameNr
的结果。
希望它能有所帮助!