0


0

Array Collectionで出力を取得する
/*
        [Bindable]
        public var rows1:ArrayCollection=new ArrayCollection([
            ['Google',      [{Projectname:"1", Client:0},
                                {Projectname:"2", Client:1},
                                {Projectname:"3", Client:2},
                                {Projectname:"4", Client:3}]
            ],
            ['Yahoo',               [{Projectname:"1", Client:4},
                                {Projectname:"2", Client:1},
                                {Projectname:"3", Client:2},
                                {Projectname:"4", Client:1}]
            ],
        ]);
        */

テーブルがあり、この形式の出力をFlexに戻す必要がありますが、これもできません…​ 上記の出力をスローしないPHPで間違っている場所を誰かに教えてもらえますか?

PHPコード:

public function getAllProjects()
{
    $findings=array();
    $sql="SELECT id,projectname FROM project";
    $result=mysql_query($sql);
    if(!$result)
    {
        throw new Exception("QUERY FAILED.\n\n".mysql_error());
    }
    while(list($id,$projectname)=mysql_fetch_row($result))
    {
        $dataArray=array();
        $sql="SELECT state AS state FROM project WHERE id= '$id'";
        $result2=mysql_query($sql);
        if(!$result2)
        {
            throw new Exception("QUERY FAILED.\n\n".mysql_error());
        }
        while($row=mysql_fetch_array($result2))
        {
            $dataArray[]=$row;
        }
        $findings[]=array($projectname,$dataArray);
    }//while
    return $findings;
}

PHPにはArrayCollectionがないことを知っています。

PHPからの望ましい出力

$rows=array(
        array('ssss1232',array(array("projectname"=>"1", "clientname"=>0),
            array("projectname"=>"2", "clientname"=>1),
            array("projectname"=>"3", "clientname"=>3),
            array("projectname"=>"4", "clientname"=>3))
            ),
            array('sssss',array(array("projectname"=>"1", "clientname"=>0),
                    array("projectname"=>"2", "clientname"=>1),
                    array("projectname"=>"3", "clientname"=>2),
                    array("projectname"=>"4", "clientname"=>1))
            ),

    );

2 Answer


1


説明した最終形式はJSONのように見えます。 あなたはただできるかもしれない

$projectData = getAllProjects();
...
$projectDataFormatted = json_encode($projectData);


0


`ArrayCollection`のように見える文字列を作成し、それをflexに送信したとしても、フレックス側で再度解析する必要があります-文字列から配列コレクションを初期化することはできません。 json(ここでは簡単ですが、フレックス側で解析するにはhttp://code.google.com/p/as3corelib/[library]が必要です)またはxml(flexは `e4x`をネイティブでサポートしています)を使用します代わりに。