Bueno en ese caso creo que la cosa es más facil, veras, todo lo que tienes que hacer es usar la clase XMLSerializer.php de PEAR, clase que vas a importar en tu proyecto PHP, sería algo como esto:
Código PHP :
$arr = array(
array('id' => 1, 'nombre' => 'Nombre 1', 'edad' => 21),
array('id' => 2, 'nombre' => 'Nombre 2', 'edad' => 45)
);
require_once 'XmlSerializer.class.php';
$obj = new XmlSerializer();
$obj->serialize($arr);Ahora, imagina que la variable $arr es la matriz que devuelve el resultado de la consulta a la Base de Datos. Esto produce en esta pagina un xml.
Posteriormente en Flex usas la clase HTTPService y le pasa como URL la direccion de la pagina que hicimos anteriormente la cual mostraba un xml.
Luego en el handler ResultEvent del objeto de la clase HTTPService capturamos el resultado, te voy a presentar una clase que hace poco realicé y espero que te sirva
Código ActionScript :
package clases
{
import flash.events.Event;
import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.InvokeEvent;
import mx.rpc.events.ResultEvent;
import mx.rpc.http.mxml.HTTPService;
public class Conexion
{
private var service:HTTPService;
public function Conexion(url:String, funcResult:Function)
{
this.service = new HTTPService();
this.service.method = "POST";
this.service.url = url;
this.service.useProxy = false;
//cuando se hace la consulta se cancelan las existentes.
this.service.concurrency = "multiple";
//devolver el resultado de la consulta en el formato XML
this.service.resultFormat = "e4x";
this.service.addEventListener(ResultEvent.RESULT, funcResult);
this.service.addEventListener(FaultEvent.FAULT, handlerFault);
this.service.addEventListener(InvokeEvent.INVOKE, handlerInvoke);
}
//Modificar el Listener del Evento RESULT
public function set funcResult(param:Function):void{
this.service.addEventListener(ResultEvent.RESULT, param);
}
/**
* Modifica la url hacia la que se va a hacer el envio.
*/
public function set url(param:String):void{
this.service.url = param;
}
public function get url():String{
return this.service.url;
}
public function send(params:Object = null):void{
//enviar los parametros
this.service.request = params;
this.service.send();
}
//funcion que se invoca cuando se reciben los resultados.
private function handlerResult(e:ResultEvent):void{
//Alert.show(e.result.toString());
}
/**
* Se invoca cuando falla la conexion
*/
private function handlerFault(e:FaultEvent):void{
Alert.show(e.fault.faultString, "Error en el envío");
}
/**
* Se dispara cuando se invova el envio
*/
private function handlerInvoke(e:InvokeEvent):void{
//Alert.show("Se invocó", "Invocación");
}
}
}