2009-11-25 6 views
0
/* 
     [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}] 
      ], 
     ]); 
     */ 

J'ai une table et j'ai besoin d'obtenir la sortie dans ce format de retour à Flex que je ne suis pas capable aussi ... quelqu'un peut me pointer où je vais mal dans mon php qui ne lance pas cette sortie ci-dessus.Obtenir la sortie dans Array Collection

Code 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; 
} 

Je sais que PHP ne pas ArrayCollection.

sortie souhaité de 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)) 
      ), 

    ); 
+0

Le format désiré me ressemble à json. Est-ce ce que vous allez faire? En outre, le formatage de votre code est assez effrayant;) L'espace vertical est correct. –

Répondre

1

Le format final que vous avez décrit ressemble JSON. Vous pourriez être en mesure de simplement faire

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

J'ai été capable de passer la même chose, et obtenir le résultat dans mon autre code ... il semble json, mais son arrayCollection dans Flex – Kevin

0

Même si vous faites avec succès une chaîne qui ressemble à un ArrayCollection et l'envoyer à fléchir, vous avez toujours à analyser en arrière sur le côté flex - vous ne pouvez pas initialiser un simple collection de tableau à partir d'une chaîne. Utilisez json (ce qui serait simple ici, mais vous avez besoin d'un library pour l'analyser côté flexible) ou xml (flex a un support natif pour e4x).