Comunidad de diseño web y desarrollo en internet online

Conectar Flex3 con Php y MySql 1

Citar            
MensajeEscrito el 14 Abr 2009 11:15 pm
Es un simple ejemplo de cómo conectar Flex con PHP y MySql ,
Usando httpService, se debe crear una base de datos llamada personas y una tabla llamada también personas
con campos folio y nombre



Código :

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
layout="absolute" creationComplete="personas.send()">

<mx:HTTPService id="personas" url="http://localhost/conexion.php" 
resultFormat="e4x"/>
      
<mx:DataGrid x="251" y="95" dataProvider="{personas.lastResult..persona}">
    <mx:columns>
          <mx:DataGridColumn headerText="FOLIO" dataField="folio"/>
           <mx:DataGridColumn headerText="NOMBRE" dataField="nombre"/>      
      </mx:columns>
    </mx:DataGrid>
      
</mx:Application>




Conexion.php

Código :

<personas>
<?php
    if (!($conexion=mysql_connect('localhost','root','CONTRASEÑA'))){
          echo "Error conectando a la base de datos.";
          exit();
    }

    if (!mysql_select_db("personas",$conexion)) {
          echo "Error seleccionando la base de datos.";
          exit();
    }

    $sql = "SELECT * from personas ";

    $result = mysql_query($sql,$conexion);
    while($fila = mysql_fetch_object($result)){
?>
    <persona>
        <folio><?php print $fila->folio ?></folio>
        <nombre><?php echo $fila->nombre ?></nombre>
    </persona>
<?php
    }
?>
</personas>

Por ngranados

84 de clabLevel

1 tutorial

 

firefox
Citar            
MensajeEscrito el 14 Abr 2009 11:19 pm
Exelente ejemplo!
tendras algunos otros relacionados con las conexiones

Por perro17up

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Abr 2009 11:30 am
tambien podeis echarle un vistazo a AsSql para mysql, permite conectar directamente flex con mysql.

Código :

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication 
        xmlns:mx="http://www.adobe.com/2006/mxml" 
        xmlns:assql="com.maclema.mysql.mxml.*" 
        layout="absolute" 
        creationComplete="onCreationComplete()">
        
        <mx:Script>
        <![CDATA[
                import mx.controls.Alert;
                import mx.rpc.AsyncResponder;
                import mx.collections.ArrayCollection;
                import com.maclema.mysql.ResultSet;
                import com.maclema.util.ResultsUtil;
                import com.maclema.mysql.events.MySqlEvent;
                import com.maclema.mysql.MySqlToken;
                import com.maclema.mysql.Statement;
                import com.maclema.mysql.Connection;
                
                private var con:Connection;
                
                        private function onCreationComplete():void {
                                con = new Connection("localhost", 3306, "root", "root", "jwc");
                                con.addEventListener(Event.CONNECT, handleConnected);
                                con.connect();  
                        }
                        
                        private function handleConnected(e:Event):void {
                                var st:Statement = con.createStatement();
                                
                                //turn on results streaming
                                st.streamResults = true;
                                
                                //dispatch new rows event every 500 new rows
                                st.streamingInterval = 50;
                                
                                //execute a query
                                var token:MySqlToken = st.executeQuery("SELECT * FROM productos");
                                
                                //listen for our result set columns
                                token.addEventListener(MySqlEvent.COLUMNDATA, function(e:MySqlEvent):void {
                                        grid.columns = ResultsUtil.getDataGridColumns( e.resultSet );
                                        grid.dataProvider = new ArrayCollection();
                                });
                                
                                //listen for new rows
                                token.addEventListener(MySqlEvent.ROWDATA, function(e:MySqlEvent):void {
                                        addNewRows(e.resultSet);
                                });                             
                                
                                //add a responder
                                token.addResponder(new AsyncResponder(
                                        function(data:Object, token:Object):void {
                                                //call add new rows again to ensure we have all the rows
                                                addNewRows(ResultSet(data));
                                        },
                                        function(info:Object, token:Object):void {
                                                Alert.show("Error: " + info);
                                        },
                                        token
                                ));
                        }
                        
                        private function insertar(e:Event):void {
                                var st:Statement = con.createStatement();
                                st.executeQuery("INSERT INTO `productos` (`Nombre`,`Descripcion`,`Precio`,`IdCategorias`,`imagen`,`idSubcategoria`,`grabado`) VALUES ('x','x','1','1','x','1','0')");
                              handleConnected(e);
                        }
                        
                        private function addNewRows(rs:ResultSet):void {
                                //get our data provider
                                var dp:ArrayCollection = grid.dataProvider as ArrayCollection;
                                
                                //get the collection of new rows
                                var newRows:ArrayCollection = rs.getRows(false, dp.length, (rs.size()-dp.length));
                                
                                //concat our current source, and our new rows source
                                dp.source = dp.source.concat( newRows.source );
                                
                                //refresh our data provider
                                dp.refresh();
                        }
                ]]>
        </mx:Script>
        
        <mx:DataGrid id="grid" left="10" right="10" top="50" bottom="10" />
          <mx:Button label="Insertar" click="{insertar(event)}" left="10" top="20"/>    
</mx:WindowedApplication>



la libreria necesaria la podeis descargar de [URL="http://code.google.com/p/assql/"]aqui[/URL] yo uso la 2.7, espero os sirva de ayuda lo lo he encontrado bastante util y he decidido postearlo. :wink:

P.D. Solo espero que se tome como una ayuda y una posibilidad diferente de hacer las cosas y no de otra forma.

Por avielo

21 de clabLevel



Genero:Masculino  

Cordoba, España

chrome
Citar            
MensajeEscrito el 27 Jul 2009 04:28 pm
Muchas gracias a los dos por la info D:

Se agradece ;)

^^

Por Marcelificus

3 de clabLevel



 

msie8

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.