用来自 php 的数据填充 flash 中的数组

Posted

技术标签:

【中文标题】用来自 php 的数据填充 flash 中的数组【英文标题】:Populate an array in flash with data from php 【发布时间】:2013-02-21 12:27:03 【问题描述】:

您好,所以我需要使用来自 php.ini 的信息在 flash 中填充一个数组。我的php代码是:

<?php

$db = mysql_connect("localhost","root",""); 
    if (!$db) 
        die("Database connection failed miserably: " . mysql_error());
    


$db_select = mysql_select_db("profileofperson",$db);
    if (!$db_select) 
        die("Database selection also failed miserably: " . mysql_error());
    

?>

<html>
    <head>
        <title>mySQLtestfile</title>
    </head>
    <body>
 
<?php
//Step4
$result = mysql_query("SELECT * FROM catalogue", $db);
    if (!$result) 
        die("Database query failed: " . mysql_error());
    

    while ($row = mysql_fetch_array($result)) 
        echo $row[" Name"]." ".$row["age"]." ".$row["Allergies"]." ".$row["height"]." ".$row["weight"]."<br />";
    
?>
    </body>
</html>

目前正在显示来自数据库的信息。如何让 flash 填充到数组中?

【问题讨论】:

以与闪存兼容的格式生成数据。然后在 flash 中发出请求以加载数据。 您的 PHP 代码生成 HTML,这与从 flash 请求数据有什么关系?我想您首先需要对 Flash 以及如何从服务器检索数据进行一些研究... 还有,请不要转发the same (or a very similar) question... 对此表示歉意,但出现上传错误。我以前从未这样做过,所以我在问最好的方法是什么。如果我使用 XML 作为一种格式是最好的吗? 【参考方案1】:

让你的文档变成 xml,而不是 html,像这样开始文档:

<?php

    header("Content-type: text/xml");
    echo chr(60).chr(63).'xml version="1.0" encoding="utf-8" '.chr(63).chr(62);

这只是添加了一个标题标签,以便浏览器/flash 将文档识别为 XML(类似于带有 HTML 的 !DOCTYPE):&lt;?xml version="1.0" encoding="UTF-8"?&gt;

然后,按照您的方式查询,但以有效的 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);

然后,加载数据解析 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...
    


最后一件事,mysql_ 函数在 PHP 中已被弃用,我最近发现了这一点,以后改用 SQLi 或 PDO!

希望这会有所帮助,正如我所说,我已经把它写在了我的脑海中,你最好尝试一下,但如果你遇到困难,请发表评论,我会看看!

【讨论】:

感谢您抽出宝贵时间回答。好的,我会实施并让你知道 运气不好,伙计...我收到一个解析错误:解析错误,期待','' or ';''。当我加载页面时。但我写得很好。 flash 也遇到了沟通问题。问题是我需要将每一位数据(例如姓名、过敏症等)加载到 Flash 中的单独数组中,然后在动态 textbx 中显示输出 我没有测试过这段代码,只是把它写出来,这周有时间我会设置它,看看我是否不能发现错误。 当然可以。随时通知我

以上是关于用来自 php 的数据填充 flash 中的数组的主要内容,如果未能解决你的问题,请参考以下文章

使用来自 mySQL 数据库的数据填充引导卡

用对象数组填充表

用数据库数据填充数组并在pickerView上调用它

需要来自 txt 文件的数据,以逗号分隔,以使用现有类中的对象填充数组列表

用 Pandas 数据框中的行填充嵌套字典

如何使用动态数量的数据条目初始化表单集