Foros del Web » Programando para Internet » PHP »

mysql

Estas en el tema de mysql en el foro de PHP en Foros del Web. Hola, Lo que quiero hacer es acceder a la base de datos para obtener la contraseña de un alumno. Esta contraseña después de obtenerla de ...
  #1 (permalink)  
Antiguo 01/04/2008, 05:59
 
Fecha de Ingreso: febrero-2008
Mensajes: 36
Antigüedad: 16 años, 2 meses
Puntos: 0
mysql

Hola,

Lo que quiero hacer es acceder a la base de datos para obtener la contraseña de un alumno. Esta contraseña después de obtenerla de la BD quiero guardarla en la variable OPCION. El problema es que en la variable OPCION guarda "$sql2[0]" y yo lo que quiero que guarde es el contenido de la variable "$sql2[0]"(que en teoría debe ser la contraseña obtenida de la BD). Es decir, que si quiero ver lo que hay en la variable OPCION después de ejecutar el siguiente código, me dice que en opción hay "$sql2[0]".

El código es el siguiente:
if($action == 'devolver_contrasenya'){
$sql = mysql_query("SELECT password FROM alumnos WHERE usuario='".$username."'");
$sql2 = mysql_fetch_row($sql);
if(!$sql2)
{
?>&opcion=0&<?
}
else
{
?>&$opcion =$sql2[0]&<?
}

}


Alguien sabría como hacerlo para que en $opcion me guarde el valor de la contraseña?

Muchas gracias,

Luna
  #2 (permalink)  
Antiguo 01/04/2008, 06:23
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 4 meses
Puntos: 5
Re: mysql

Tienes un error en el código:

es que cierras los tags de php antes de las asignaciones y luego los abres tras asignar y por tanto no interpreta el código.

Código PHP:
if($action == 'devolver_contrasenya'){
$sql mysql_query("SELECT password FROM alumnos WHERE usuario='".$username."'");
$sql2 mysql_fetch_row($sql);
if(!
$sql2)
{
$opcion=0;
}
else
{
$opcion =$sql2[0];
}

Salu2 ;)
__________________
[+]
[+]

Última edición por yoseman; 01/04/2008 a las 06:41
  #3 (permalink)  
Antiguo 01/04/2008, 07:34
 
Fecha de Ingreso: febrero-2008
Mensajes: 36
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: mysql

Hola,

Muchas gracias yoseman por tu respuesta, sigue sin funcionar pero he avanzado algo.

A ver, yo llamo a este programa PHP desde Flash, y quiero devolver el valor de la variable OPCION desde PHP a Flash, por eso sacaba el valor opcion de los tags de PHP, y claro, como tu decías, por eso no coge el valor de $sql2. He intentado probarlo así, pero tampoco funciona:

?> &$opcion =<? $sql2[0]; ?>&<?


El código ahora quedaría:

<?php
if($action == 'devolver_contrasenya')
{
$sql = mysql_query("SELECT password FROM alumnos WHERE usuario='".$username."'");
$sql2 = mysql_fetch_row($sql);
if(!$sql2)
{
?>&$opcion=0;&<?
}
else
{
?> &$opcion =<? $sql2[0]; ?>&<?
}
}
?>

Alguna idea?

Muchas gracias!
  #4 (permalink)  
Antiguo 01/04/2008, 08:03
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 4 meses
Puntos: 5
Re: mysql

Claro para flash es distinto...

Voy a intentar ayudarte teniendo en cuenta que no sé muy bien lo que tienes antes del script ni lo que tienes en flash...

Supongo que estás utilizando una variable de tipo LoadVars para recoger datos desde flash y haces un sendAndLoad de otra variable de tipo loadVars.

Quiero decir, en flash tienes que tener por ejemplo:

enviar=new LoadVars();
enviar.action="devolver_contrasenya";

recibir=new LoadVars();

enviar.sendAndLoad("direccion_del_php.php",recibir ,"POST");

recibir.onLoad=function()
{
// el trace lo pongo para comprobar si se recoge bien
trace (recibir.opcion);
}

Pués partiendo de que esto es correcto, el script en php que devolvería a flash el dato solicitado y pensando que no haya ningún error en base de datos ni nada sería:

Código PHP:
<?php
// en teoría para leer la variable enviada desde flash sería para mi ejemplo de enviar
// $_POST['action']
if($action == 'devolver_contrasenya')
{
    
// si no tienes antes ningún par variable valor quita el &
    
echo "&opcion=";
    
$sql mysql_query("SELECT password FROM alumnos WHERE usuario='".$username."'");
    
$sql2 mysql_fetch_row($sql);
    if(!
$sql2)
    {
        echo 
"0"
    
}
    else
    {
        echo 
$sql2[0];
    }
}
echo 
"&fin=si";
Lo que pasa es que no sé si tienes algun par variable-valor antes de este código, si lo tuvieses, ya sabes que la nomencatura para recibir en flash usando sendAndLoad es variable1=valor1&variable2=valor2&variableN=valorN &fin=si(yo siempre pongo al final un &fin=si por si acaso)

Tampoc sé de dónde has sacado el $username que supuestamente se envia desde flash, pero ten en cuenta que si tuvieses en flash envia.username="javier" en php lo tienes que recoger con $_POST['username'], si pones $username puede ser que no funcione.

Luego por otra parte tu utilizas en la evaluación ($action == 'devolver_contrasenya') pero dependiendo de la versión de php y si no has hecho una asignación previa a $_POST['action'] puede no funcionar. Si antes de ese código no tienes asignado $action=$_POST['action'] prueba de usarlo o poner directamente en la evaluación $_POST['action']

Pero vamos que básicamente es eso, es que no sé si tienes cosas antes.

Y para comprobar que recibes bien supongo que usarás un trace en el flash, mira a ver si se recibe al menos algo.

Es que pueden ser muchas cosas.

lo mismo si pones mas datos te puedo ayudar mejor...

Un saludo.
__________________
[+]
[+]

Última edición por yoseman; 01/04/2008 a las 08:15
  #5 (permalink)  
Antiguo 01/04/2008, 08:56
 
Fecha de Ingreso: febrero-2008
Mensajes: 36
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: mysql

Muchas gracias, ya funciona.

El resto de código lo tenía tal como has dicho, el problema era que no sabía como devolver el valor del "password" en la variable "opcion". Y haciéndolo con echo, tal como me has dicho, funciona.

Muchas gracias de nuevo,

Un saludo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:09.