Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/09/2010, 17:36
Avatar de Alun
Alun
 
Fecha de Ingreso: diciembre-2009
Ubicación: Liverpool
Mensajes: 140
Antigüedad: 14 años, 5 meses
Puntos: 4
Error al devolver una respuesta de mysql

Un saludo a todos:

Estoy haciendo una aplicación AJAX muy sencilla, aunque creo que el fallo está en php, por eso posteo aquí. La aplicación consiste en comprobar si un mail o nick están ya almacenados en la base de datos. Estos datos están almacenados en una tabla "usuarios". Para que salte la aplicación, he puesto unos botones al lado de cada cuadro input, que llaman a la función encargada de conectar con el server. A esta función se le pasan dos argumentos: el tipo de consulta (nick o email) y el valor a comprobar. Estos dos datos deben ser pasados con cuidado, ya que la aplicación ajax los pasa como parámetro GET, y uno de ellos, el tipo de consulta es el nombre del campo a buscar. Los nombres de los campos son "mail" para el email y "nik" para el nick. El problema es que el correo siempre lo valida, aunque exista en la base de datos. El nick, sin embargo, lo comprueba correctamente, si no está, da aviso de que existe. Lo extraño es que es la misma función, el valor a comprobar es pasado a la función, ya sea un nick o un correo. Aquí el código php:

Código PHP:
include '../conexion/conexion.inc';
if(
$conexion)
{
 
$conectarBD mysql_select_db($bd$conexion);
 if(
$conectarBD)
 {
  
$ssql='select '.$_GET['dato'].' from usuarios;';//$_GET['dato'] puede ser 'nik' o 'mail'
  
$query=mysql_query($ssql,$conexion);
  if(
$query)
  {
   
$result=mysql_fetch_row($query);
   
$cont=false;
   for(
$i==0;$i count($result);$i++)
   {
    if(
$result[0]==$_GET['consulta'])//$_GET['consulta'] es el valor del campo mail o del campo correo
    
{
     
$cont=true;
    }
   }
   if(
$cont==false)
   {
    echo 
'disponible='.$_GET['dato'];
   }
   elseif(
$cont==true)
   {
    echo 
'usado='.$_GET['dato'];
   }
  }
 }

He pensado que podría ser un problema de caché, aunque luego lo he descartado, uno, porque paso como parámetro GET un número aleatorio de 8 dígitos, por recomendación de un libro, y dos, porque he limpiado la caché y lo he vuelto a probar.

Antes, funcionaba correctamente, el problema ha comenzado cuando he cambiado la llamada de la función, de un onBlur en el cuadro a un onClick del botón. No obstante, está correctamente llamada. Además, he probado a acceder al fichero desde el explorador, y, efectivamente, me da el fallo en el php.

¿Por qué no me reconoce que hay un correo existente en la BD, y en cambio, sí lo hace con el nick?

Muchas gracias.