Flex y MySql
En este primer post dedicado a la publicación o uso de bases de datos Mysqlcon nuestras aplicaciones Flex, vamos a abordar la conexión a través de una pasarela creada en PHP.
Esta primera solución es la más sencilla de todas y nos permite tener por ejemplo el frontend de nuestra aplicación en HTML y el backend en Flex.
Pongamos de ejemplo una tienda online que tiene un catálogo de productos y que queremos crear un administrador de éste mediante Flex.
El primer paso que vamos a hacer es la creación de un fichero PHP que haga las consultas pertinentes a la base de datos MySQL y nos devuelva el conjunto de resultados en XML. Este XML será procesado o consumido desde la aplicación Flex y será asociado mediante Data Binding (enlace entre controles y datos) a los controles de nuestro administrador.
Un ejemplo podría ser el siguiente:
Como resultado este fichero devolverá algo como lo siguiente:
-
<?xml version=“1.0″ encoding=“utf-8″?>
-
<productos>
-
<producto>
-
<referencia>1</referencia>
-
<nombre>Primer Producto</nombre>
-
<precio>10.99</precio>
-
<producto>
-
-
<producto>
-
<referencia>2</referencia>
-
<nombre>Segundo Producto</nombre>
-
<precio>15.45</precio>
-
<producto>
-
-
<producto>
-
<referencia>3</referencia>
-
<nombre>Tercer Producto</nombre>
-
<precio>58.99</precio>
-
<producto>
-
</productos>
Ahora pasamos a la parte Flex que se encargará de consumir este XML que nos devuelve PHP. Para ello crearemos un DataGrid que nos mostrará el resultado. Lo asociaremos mediante data binding al resultado de la llamada al php (mediante HTTPService). Usaremos el formato E4X para mayor comodidad.
-
<?xml version=“1.0″ encoding=“utf-8″?>
-
<mx:Application xmlns:mx=“http://www.adobe.com/2006/mxml”layout=“absolute” creationComplete=“prodRPC.send()” width=“100%”>
-
-
<mx:HTTPService id=“prodRPC”url=“http://localhost/productos.php” resultFormat=“e4x”/>
-
-
<mx:DataGrid id=“dgProductos” x=“10″ y=“10″dataProvider=“{prodRPC.lastResult..producto}” width=“561″height=“526″>
-
<mx:columns>
-
<mx:DataGridColumn dataField=“referencia” />
-
<mx:DataGridColumn dataField=“nombre” />
-
<mx:DataGridColumn dataField=“precio” />
-
</mx:columns>
-
</mx:DataGrid>
-
-
</mx:Application>
El resultado sería el siguiente:
