Comunidad de diseño web y desarrollo en internet online

Recoger un Array desde PHP

Citar            
MensajeEscrito el 10 May 2010 09:55 pm
Hola tengo un php para crear un array

Código PHP :

<?php
require_once('conn/conn.php');
mysql_select_db($database_conn, $conn);
$sql = "SELECT link_id,link_desc,link_url FROM links WHERE activo='1'";
$result=mysql_query($sql);
$objeto = array();
for($i=0;$fila= mysql_fetch_assoc($result); $i++) { 
        for($a= 0;$a<mysql_num_fields($result);$a++){
          $campo = mysql_field_name($result,$a);
            $objeto[$i][$campo] = $fila[$campo];
        }
    };
echo $objeto;
mysql_close($conn);
?>


Y en flash tengo

Código ActionScript :

var recibir:URLLoader = new URLLoader();
var variables:URLVariables = new URLVariables();

function listarLinks():void{
   variables.objeto = "0";   
   var enviar:URLRequest=new URLRequest("links.php");
   enviar.method=URLRequestMethod.POST;
   enviar.data=variables;
   
   recibir.dataFormat=URLLoaderDataFormat.VARIABLES;
   recibir.addEventListener(Event.COMPLETE,recibirLinks);
   recibir.addEventListener(IOErrorEvent.IO_ERROR,HayError);
   recibir.load(enviar);
}
function recibirLinks(e:Event):void{   
   trace (recibir.data);
}
listarLinks();


Ya he utilizado el Charles Proxy y si se genera bien el array, solo que no puedo recibirlo bien en flash, si pongo recibir.data obtengo esto

Código :

%3C%3Fphp%0D%0A%0D%0Arequire%5Fonce%28%27conn%2Fconn%2Ephp%27%29%3B%0D%0Amysql%5Fselect%5Fdb%28%24database%5Fconn%2C%20%24conn%29%3B%0D%0A%0D%0A%24sql%20=%20%22SELECT%20link%5Fid%2Clink%5Fdesc%2Clink%5Furl%20FROM%20links%20WHERE%20activo%3D%271%27%22%3B%0D%0A%24result%3Dmysql%5Fquery%28%24sql%29%3B%0D%0A%24objeto%20%3D%20array%28%29%3B%0D%0Afor%28%24i%3D0%3B%24fila%3D%20mysql%5Ffetch%5Fassoc%28%24result%29%3B%20%24i%20%20%29%20%7B%20%0D%0A%20%20%20%20%20%20%20%20for%28%24a%3D%200%3B%24a%3Cmysql%5Fnum%5Ffields%28%24result%29%3B%24a%20%20%29%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%24campo%20%3D%20mysql%5Ffield%5Fname%28%24result%2C%24a%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%24objeto%5B%24i%5D%5B%24campo%5D%20%3D%20%24fila%5B%24campo%5D%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%7D%3B%0D%0A%09%0D%0A%09echo%20%24objeto%3B%0D%0A%0D%0Amysql%5Fclose%28%24conn%29%3B%0D%0A%0D%0A%3F%3E%0D%0A


Si pongo recibir.data.objeto para llamar la variable del array me sale undifined o null

¿alguna idea de que se me esta pasando? gracias

Por noequezada

7 de clabLevel



 

firefox
Citar            
MensajeEscrito el 10 May 2010 10:05 pm
el swf debe estar en tu localhost , de no serlo usa una ruta absoluta al servidor donde tienes el archivo php , por que asi como lo muestras, flash lo lee como cualquier archivo de texto plano.

Jonathan

Por maneuver

243 de clabLevel



Genero:Masculino  

Mexico City

firefox
Citar            
MensajeEscrito el 10 May 2010 10:08 pm
por si no me di a entender cambia la url del URLRequest Object

Código ActionScript :

var enviar:URLRequest=new URLRequest("http://localhost/phpScripts/links.php"); //----ruta directa al archivo php en el servidor


Jonathan

Por maneuver

243 de clabLevel



Genero:Masculino  

Mexico City

firefox
Citar            
MensajeEscrito el 10 May 2010 10:28 pm
Gracias Jonathan,

El swf si esta en mi localhost, ya cambie la ruta pero sale lo mismo

Por noequezada

7 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 May 2010 03:39 pm
Si escribes en el "navegador" la ruta del php ¿qué te sale?

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 May 2010 04:44 pm
Array

Por noequezada

7 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 May 2010 06:44 am
ESE es el problema.
Cuando queremos recoger datos de un php lo podemos hacer de dos modos
1.-Formando una cadena tal y como
variable1=valor1&variable2=valor2&...&
2.-Formando un XML

En el caso de que elijamos la primera forma, cuando tenemos una base de datos, algo se que suele hacer mucho es que la cadena sea de la forma
variable1=campo11|campo12|campo13&variable2=campo21|campo22|campo23&.......&

De ese modo tendríamos 3 variables que son un string de campos separados por "|". A la hora de leer podemos hacer un "split" para tener un array de arrays

Código ActionScript :

datos=new Array()
function recibirLinks(e:Event):void{    
   var i:int=0
   while (recibir.data["variable"+i]!=null){
             datos[i]=recibir.data["variable"+i].split("|")
             i++
   }
} 

Claro, tienes que cambiar el php para formar algo por el estilo. Ando algo "oxidado" con PHP, pero debería ser algo como

Código :

<?php 
require_once('conn/conn.php'); 
mysql_select_db($database_conn, $conn); 
$sql = "SELECT link_id,link_desc,link_url FROM links WHERE activo='1'"; 
$result=mysql_query($sql); 
$texto=""
for($i=0;$fila= mysql_fetch_assoc($result); $i++) {  
        $texto+="<link 
        for($a= 0;$a<mysql_num_fields($result);$a++){ 
          $campo = mysql_field_name($result,$a); 
          $texto+=$fila[$campo]+"|"
        } 
        $texto=substr($texto, 0, -1);
    }; 
$texto+="&"
echo $texto; 
mysql_close($conn); 
?> 


Si lo queremos hacer formando un XML, pensemos primero en como queremos que sea nuestro XML.
Podríamos pensar en algo como

Código :

<links>
    <link id="0" desc="Google" url="http://www.google.com">
    <link id="1" desc="Yahoo" url="http://www.yahoo.com">
</links>

(o en cualquier otro que nos convenga más).
Así que el php debería ser del estilo (repito que ando oxidado con php)

Código :

<?php 
require_once('conn/conn.php'); 
mysql_select_db($database_conn, $conn); 
$sql = "SELECT link_id,link_desc,link_url FROM links WHERE activo='1'"; 
$result=mysql_query($sql); 
$texto="<links>";
for($i=0;$fila= mysql_fetch_assoc($result); $i++) {  
        $texto+="variable"+$i+"="
        for($a= 0;$a<mysql_num_fields($result);$a++){ 
          $campo = mysql_field_name($result,$a); 
          $texto+=" "+$campo+"=\""+$fila[$campo]+"\"";
        } 
        $texto+="/>";
    }; 
texto+="</links>";
echo $texto; 
mysql_close($conn); 
?> 


NOTA: Crea primero el php y ejecutaló en el navegador. Cuando te salga lo que tiene que salir es cuando pruebas el .fla
NOTA2:repito lo del "oxidamiento" con el php

Por Eliseo2

710 de clabLevel



 

firefox

 

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