Comunidad de diseño web y desarrollo en internet online

Problema con URLLoader(AS3) PHP y SQL

Citar            
MensajeEscrito el 15 Jul 2010 03:23 pm
Hola amigos de Crsitalab, actualemente estoy trabajando en un videojuego en flash con AS3 pero tengo problemas con el URLLoader, ya que supuestamente el PHP me esta enviando las respuestas bien, pero cuando hago uso de las variables variables que llamo del PHP me aparece como undefinded en el swf.

El AS3 que tengo es este

Código ActionScript :

function leerNiveles(tipoNivel:int):void {
   var varLeerNiveles:URLVariables = new URLVariables();
   varLeerNiveles.usuario=apodo;
   varLeerNiveles.tipoNivel=tipoNivel;
   var nivelRequest:URLRequest=new URLRequest(urlNivelesPhp+"niveles.php");
   var recibirNiveles:URLLoader = new URLLoader();
   nivelRequest.method=URLRequestMethod.POST;
   nivelRequest.data=varLeerNiveles;
   recibirNiveles.dataFormat=URLLoaderDataFormat.VARIABLES;
   recibirNiveles.addEventListener(Event.COMPLETE,Respuesta);
   recibirNiveles.addEventListener(IOErrorEvent.IO_ERROR,HayError);
   recibirNiveles.load(nivelRequest);
   function Respuesta(event:Event) {
      niveles[0]=recibirNiveles.data.Nivel1_1;
      niveles[1]=recibirNiveles.data.Nivel1_2;
      niveles[2]=recibirNiveles.data.Nivel1_3;
      niveles[3]=recibirNiveles.data.Nivel1_4;
      niveles[4]=recibirNiveles.data.Nivel1_5;
      cargarNiveles();
      respuesta.text=("Cargando niveles..");
   }
   //Función que se ejectuta cuando no se puede cargar el PHP
   function HayError(event:IOErrorEvent):void {
      respuesta.text=("Error, intentalo más tarde");
   }

}

luego de guardar los datos en el arreglo genero unas imagenes en un tilelist

Código ActionScript :

function cargarNiveles():void {
   dp.removeAll();
   dp.addItem({label:"Nivel 1", source:URLImagenes+niveles[0]+"Nivel1.jpg"});
   dp.addItem({label:"Nivel 2", source:URLImagenes+niveles[1]+"Nivel2.jpg"});
   dp.addItem({label:"Nivel 3", source:URLImagenes+niveles[2]+"Nivel3.jpg"});
   dp.addItem({label:"Nivel 4", source:URLImagenes+niveles[3]+"Nivel4.jpg"});
   dp.addItem({label:"Nivel 5", source:URLImagenes+niveles[4]+"Nivel5.jpg"});
   fotos_v.dataProvider=dp;
   respuesta.text="Niveles";
}


pero el error que me genera es el siguiente para cada imagen

Error #2044: ioError no controlado: text=Error #2035: No se encuentra la dirección URL. URL: wamp/www/pachotuns/images/undefinedNivel4.jpg

y el PHP es este:

Código PHP :


$usuario = htmlentities($_POST['usuario']);

$niveles = mysql_query("SELECT * FROM niveles WHERE usuario = '".$usuario."'",$conexion);
$Nivel1_1 = mysql_result($niveles, 0, "Nivel1_1");
$Nivel1_2 = mysql_result($niveles, 0, "Nivel1_2");
$Nivel1_3 = mysql_result($niveles, 0, "Nivel1_3");
$Nivel1_4 = mysql_result($niveles, 0, "Nivel1_4");
$Nivel1_5 = mysql_result($niveles, 0, "Nivel1_5");

echo "Nivel1_1=".$Nivel1_1;
echo "Nivel1_2=".$Nivel1_2;
echo "Nivel1_3=".$Nivel1_3;
echo "Nivel1_4=".$Nivel1_4;
echo "Nivel1_5=".$Nivel1_5;


los datos que estan dentro de la tabla session son de tipo String y guarda valores "si" o "no"

Espero me puedan ayudar, muchisimas gracias de antemano

Por fats2005

6 de clabLevel



 

Ingeniero en Multimedia

firefox
Citar            
MensajeEscrito el 15 Jul 2010 07:50 pm
Agrega separadores entre los datos que saca el PHP, usa & , ejemplo

echo "Nivel1_1=".$Nivel1_1;
echo "&Nivel1_2=".$Nivel1_2;
echo "&Nivel1_3=".$Nivel1_2;
etc

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Jul 2010 03:53 pm

solisarg escribió:

Agrega separadores entre los datos que saca el PHP, usa & , ejemplo

echo "Nivel1_1=".$Nivel1_1;
echo "&Nivel1_2=".$Nivel1_2;
echo "&Nivel1_3=".$Nivel1_2;
etc

Jorge


Hola Jorge, te cuento que me funcion muy bien ecepto por el primer dato que lee, en el swf me sigue apareciendo como undefinded, mi solucion fue pasar una variable antes que no utilizo y no muestro, y todo quedo perfecto,

Código PHP :

$niveles = mysql_query("SELECT * FROM niveles WHERE usuario = '".$usuario."'",$conexion); 
$Nivel1="si";
$Nivel1_1 = mysql_result($niveles, 0, "Nivel1_1"); 
$Nivel1_2 = mysql_result($niveles, 0, "Nivel1_2"); 
$Nivel1_3 = mysql_result($niveles, 0, "Nivel1_3"); 
$Nivel1_4 = mysql_result($niveles, 0, "Nivel1_4"); 
$Nivel1_5 = mysql_result($niveles, 0, "Nivel1_5"); 

echo "Nivel1=".$Nivel1; 
echo "&Nivel1_1=".$Nivel1_1; 
echo "&Nivel1_2=".$Nivel1_2; 
echo "&Nivel1_3=".$Nivel1_3; 
echo "&Nivel1_4=".$Nivel1_4; 
echo "&Nivel1_5=".$Nivel1_5; 


Muchas gracias por tu pronta respuesta.

Por fats2005

6 de clabLevel



 

Ingeniero en Multimedia

firefox
Citar            
MensajeEscrito el 16 Jul 2010 04:03 pm
En realidad con que le agregues un & al principio es suficiente, no lo lee porque seguramente hay basura antes del nombre de la pirmer variable

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Jul 2010 05:11 pm
Muchas gracias Jorge me has sido de gran ayuda, pero ahora tengo otro problemita, esta vez en una busqueda de usuarios que estoy implementado, basicamente lo que quiero hacer es consultar la base de datos y si el usuario existe que me devuelva un SI de respuesta, si no existe que retorne un NO. esta es la función en AS3

Código ActionScript :

function leerContactos(tipoContacto:int, buscarContacto:String=null):void {
   var varleerContactos:URLVariables = new URLVariables();
   varleerContactos.apodo=MisGlobales.vars.apodo;
   varleerContactos.tipocontacto=tipoContacto;
   varleerContactos.buscarcontacto=buscarContacto;
   var contactoRequest:URLRequest=new URLRequest("../PHP/contactos.php");
   var recibirBusqueda:URLLoader=new URLLoader();
   contactoRequest.method=URLRequestMethod.POST;
   contactoRequest.data=varleerContactos;
   recibirBusqueda.dataFormat=URLLoaderDataFormat.VARIABLES;
   recibirBusqueda.addEventListener(Event.COMPLETE,Respuesta);
   recibirBusqueda.addEventListener(IOErrorEvent.IO_ERROR,HayError);
   recibirBusqueda.load(contactoRequest);
   function Respuesta(event:Event) {
      var existencia:String=recibirBusqueda.data.existe;
      respuesta_txt.text="El contacto "+existencia+" existe";
      trace("El contacto "+existencia+" existe");
      if (existencia=="si") {
         agregarContacto_mc.visible=visible;
      }
   }
   function HayError(event:IOErrorEvent):void {
      respuesta_txt.text=("Error en la busqueda, intentalo más tarde");
   }
}


y esta es la función en PHP.

Código PHP :

$contactos2 = mysql_query("SELECT * FROM usuario WHERE usuario = '".$buscarContacto."'", $conexion);
if(mysql_result($contactos2, 0, "usuario")!= ""){
        $existe="si";
} else {
   $existe="no";
}
echo "&existe=".$existe;


el problema que tengo ahora es cuando resibo la respuesta en el flash, se esta guardando el nombre de la variable sumado a todo lo que le sigue en codigo en PHP asi:

Código :

El contacto "si;

         break;

   }

?> existe


Espero me puedan ayudar, y muchas gracias por sus prontas respuestas.

Por fats2005

6 de clabLevel



 

Ingeniero en Multimedia

firefox
Citar            
MensajeEscrito el 16 Jul 2010 06:10 pm
Siempre separador en ambos extremos:

echo "&existe=".$existe."&";

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 13 Ago 2010 02:17 pm
Muchas Gracias por tu ayuda

Por fats2005

6 de clabLevel



 

Ingeniero en Multimedia

firefox

 

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