Comunidad de diseño web y desarrollo en internet online

Flash - PHP - MySQL

Citar            
MensajeEscrito el 17 Jun 2008 10:31 am
Hola,

Tengo el siguiente código en PHP, realiza una consulta a la base de datos y envía los datos de la consulta a Flash.

Código :

if ($action == 'listar_alumnos')
{
   $i=0;
   $sql = mysql_query("SELECT apellidos FROM alumnos WHERE profesor='".$prof."'");
   if (!$sql) {
      die('Could not query:' . mysql_error());
   }
   else
   {
        while($sql)
        {
               $sql2[i] = mysql_fetch_row($sql);
               $i++;
   }
   ?> &alumnos=<? echo $sql2; ?>&<?
   mysql_close($conn);
}




La conexión a la base de datos funciona porque tengo otras funciones con consultas y funcionan.

Mi duda en la siguiente: Que puedo hacer para mandar toda la lista de alumnos a Flash? El vector ese que he creado $sql2, está bien?
Para enviar la lista de alumnos a Flash lo siguiente debería de funcionar? > &alumnos=<? echo $sql2; ?>&<?

Y para recuperar esta lista en flash(con LoadVars) se hace así: this.alumnos ?
Es decir, después de hacer:
envio.onLoad = function(success) { //Aquí "this.alumnos" tendra la lista de alumos?
}


Esto debería de funcionar? es que lo estoy haciendo como os he dicho y no va...Alguna otra alternativa?

Muchas gracias!

Por lunera00

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Jun 2008 11:27 am

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 17 Jun 2008 12:37 pm
Hola, muchas gracias por el enlace.

A ver lo estoy haciendo así, en el PHP tengo:

Código :

if ($action == 'listar_alumnos')
{   $cant = 0;
   $result = mysql_query("SELECT usuario,nombre,apellidos FROM alumnos WHERE profesor='".$prof."'");
   if (!$result) {
      die('Could not query:' . mysql_error());
   }
   else
   {
      while($row=mysql_fetch_array($result)){
         ?> &usuario<? echo $cant ?> &=<?  echo $row[usuario]; ?> 
         &nombre<? echo $cant ?> &=<?  echo $row[nombre]; ?> 
         &apellidos<? echo $cant ?> &=<?  echo $row[apellidos]; 
                        $cant++;
        }
      ?> &cant=<? echo $cant; ?>&<?
   }
   mysql_close($conn);
}


y en el Flash:

Código :

   envio.onLoad = function(success) {   
            if(succes){
                for(var i=0; i<this.cant; i++){
            
                    alert(this["usuario"+i]);
                    alert(this["nombre"+i]);
                    alert(this["apellidos"+i]);
                }
            } 
         else trace("Error loading data")
        } 


Sabéis si la manera en la que envío los datos con los ECHO en el PHP está bien??

Muchas gracias,

Un saludo

Por lunera00

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Jun 2008 06:11 pm
Sip, pero en vez de alert usa trace (a menos que hayas definido una función alert, nativa de JavaScript)
Fijate en el msimo tuto que indica como usar rutas absolutas a tu PHP para poder hacer los trace desde dentro de Flash

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 17 Jun 2008 07:31 pm
Ya ya, no si el problema no está en los alert... me he dado cuenta después de que no los tenia que haber puesto para no liar.

En realidad estoy programando en javascript pero tengo incluida la función LoadVars, con lo que puedo usar LoadVars como si estuviera en Flash. Entonces de los alert nos podemos olvidar...

El problema viene del código PHP... que no lo consigo hacer funcionar. Los ECHO no devuelven nada...

Un saludo

Por lunera00

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Jun 2008 08:22 pm
Abre directamente el PHP (pon un valor hardcode) para ver si imprime, luego ya lo pruebas pasándole el parámetro $prof, que en tu código no veo de donde viene

jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 17 Jun 2008 08:56 pm
Hola,
Gracias por vuestra ayuda,

A ver.. $prof lo recibo así: $prof = $POST['prof'];
La sentencia sql funciona, el problema es a la hora de enviar a Flash de nuevo, que no tengo muy claro como usar los ECHO y no se si está bien:

Código :

      while($row=mysql_fetch_array($result)){
         ?> &usuario<? echo $cant ?> &=<?  echo $row[usuario]; ?> 
         &nombre<? echo $cant ?> &=<?  echo $row[nombre]; ?> 
         &apellidos<? echo $cant ?> &=<?  echo $row[apellidos]; 
                        $cant++;
        }
      ?> &cant=<? echo $cant; ?>&<


Muchas gracias por vuestra ayuda,

Un saludo

Por lunera00

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Jun 2008 09:21 pm
Algo así:

Código :

$string = ""
while($row=mysql_fetch_array($result)){
    $string .="&usuario$cant=$row[usuario]&nombre$cant=$row[nombre]&apellidos$cant=$row[apellidos]";
   $cant++;
}
$string .="&cant=$cant&";
echo $string;


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 18 Jun 2008 01:46 pm
Sigo sin conseguir que funcione, tengo una pregunta porque hay una cosa que no entiendo:

La siguiente instrucción:

Código :

$string .="&usuario$cant=$row[usuario]&nombre$cant=$row[nombre]&apellidos$cant=$row[apellidos]";


No debería ser:

Código :

$rString .= "&usuario" .$i. "=". $row['usuario']."&nombre" .$i. "=". $row['nombre']."&apellidos" .$i. "=". $row['apellidos'];


Lo digo porque sino las variables como $row['usuario'], $row['nombre'] y $row['apellidos'] estás como "comentario" y PHP no enviará dentro de ella el valor correcto,no?

Muchas gracias

Un saludo

Por lunera00

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Jun 2008 02:07 pm
Desde PHP 4.3 creo, aún sin las comillas simples interpreta el valor de la variable y no el literal, es decir, no es necesario

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 18 Jun 2008 02:34 pm
Y si mi versión de PHP es más antigua?

Gracias!

Por lunera00

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Jun 2008 02:42 pm
Escribe:

Código :

<?php
  phpinfo();
?>


Mira la salida, te dirá que versión tienes

Jorge

editado por eldervaz

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 20 Jun 2008 01:54 pm
Como dices que no utilizas el flash directamente no se si podrás hacer esto pero de todas formas ahí te va..

en PHP

Código :

$consulta = mysql_query("SELECT usuario,nombre,apellidos FROM alumnos WHERE profesor='".$prof."'");   
$result=mysql_query($consulta, $conn);

echo 'cadenaxml=<Datos><Alumnos>';

while($row=mysql_fetch_array($result))
{        
       
  echo 
         "<Alumno>
             <USUARIO>".$row['usuario']."</USUARIO>
             <NOMBRE>".$row['nombre']."</NOMBRE>
             <APELLIDOS>".$row['apellidos']."</APELLIDOS>
          </Alumno>";        
}  
    echo '</Datos></Alumnos>'; 

mysql_close($conn); 



en Flash

Código :

recibir.onLoad = function(exito) {
   if (exito) {
      XML.prototype.ignoreWhite = true;
      myXML = new XML(this.cadenaxml);
                   count = myXML.firstChild.firstChild.childNodes.length;
      for (i=0; i<count; i++) {
         Usuario = String(myXML.firstChild.firstChild.childNodes[i].childNodes[0].firstChild);
         Nombre = String(myXML.firstChild.firstChild.childNodes[i].childNodes[1].firstChild);
         Apellidos = String(myXML.firstChild.firstChild.childNodes[i].childNodes[2].firstChild);
                   }
   }
};

Por sophi

4 de clabLevel



Genero:Femenino  

msie

 

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