我已经设法从AS3代码中的sql表中获取了一个值,但是我不明白为什么我无法获得第二个值。

在我的php文件中,我得到了:

// create SQL
 $sql = "SELECT * FROM dt_base where username = '$username'";

// execute SQL query and get result
 $sql_result = mysql_query($sql, $connection) or die ("Couldn't execute query.");

// get number of rows in $result.
 $num = mysql_numrows($sql_result);

$phpConfirm = "";
$phpConfirmSecond = "";
$counter = 0;

while ($row = mysql_fetch_array($sql_result)) {

 $up= $row["up"];
 $down= $row["down"];
 if ($counter == 0) {
 $phpConfirm .= $up;
 $phpConfirmSecond .= $down;

 } else {
 // Use a item limiter "|" to seperate the records
 $phpConfirm .= "|" . $up;
 $phpConfirmSecond .= "|" . $down;
 }
 $counter++;
 }
?>


在我的AS3代码中:

function loadComplete(evt:Event):void {

    //Display the value with variable name "totalItem"
    total_txt.text = evt.target.data.totalItem

    //Get the value (string) with variable name "phpConfirm"
    var myResult:String = evt.target.data.phpConfirm;
    trace(evt.target.data.phpConfirm);

    var myResultSecond:String = evt.target.data.phpConfirmSecond;
    trace(evt.target.data.phpConfirmSecond);


//Split the string into an Array
    var myArray:Array = myResult.split("|");
    var myArraySecond:Array = myResultSecond.split("|");

    var finalString = "";
    var finalStringSecond = "";
    var i:int;

    for (i = 0; i < myArray.length; i++) {

        finalString = finalString + myArray[i] + "<br>";
        finalStringSecond = finalStringSecond + myArraySecond[i] + "<br>";
    }

    output_txt.htmlText = finalString;
    output_txtSecond.htmlText = finalStringSecond;
}


trace(evt.target.data.phpConfirm)结果的值为“ up”,因此可以正常工作。
但是trace(evt.target.data.phpConfirmSecond)的结果为“ undefined”,而不是“ down”的值。

知道为什么吗?

编辑

我已将其添加到我的php文件中。

echo "phpConfirm=" . $phpConfirm . "&phpConfirmSecond=" . $phpConfirmSecond;


并且我更改了$username = "John";行,以便在网络浏览器中对其进行测试。

结果是:

phpConfirm = 6h20&phpConfirmSecond = 14h32

因此phpConfirmSecond具有一个值。

但是,当我在PHP文件中包含PhpConfirmSecond时,我的AS3代码会产生错误。
这是错误:

TypeError: Error #2007: Le paramètre text ne doit pas être nul.
    at flash.text::TextField/set text()
    at as3_php_mysql_01_fla::MainTimeline/loadComplete()
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at flash.net::URLLoader/onComplete()


如果我删除了我的php文件的每条PhpConfirmSecond痕迹,则我的AS3代码可以正常工作并找到值PhpConfirm。

最佳答案

找到了问题。是那条线

 //Display the value with variable name "totalItem"
    total_txt.text = evt.target.data.totalItem


造成了所有问题...

谢谢您的帮助。

09-19 11:32