SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: yaG en Jueves 25 de Enero de 2007, 16:19

Título: Ayuda Query Simple En Mysql
Publicado por: yaG en Jueves 25 de Enero de 2007, 16:19
Buenas,
les explico mi problema, lo cual debe ser algo muy simple...
Estoy haciendo un alta de registraciòn de usuarios y quiero validar que el usuario no pueda ser dado de alta si ya existe el nick ingresado.
Utilizo el siguiente còdigo:

<?
require("funciones.php");
?>

<?
$conexion=Conectar('localhost','root','','3t'); //funcion propia para conectarme y seleccionar la BD

$nick=$_POST[txtNick];
$nombre=$_POST[txtNombre];
$apellido=$_POST[txtApellido];
$equipo=$_POST[txtEquipo];
$pass=$_POST[txtPass];
$pass2=$_POST[txtPass2];
$mail=$_POST[txtMail];


//valido el ingreso de password
if($pass!=$pass2){
   echo "La confirmación no coincide con la password ingresada.";?> <br> <?
   echo "Por favor ingresala nuevamente.";
}else{//valido que no exista nick duplicado
   $duplicado=mysql_query("SELECT * FROM USUARIOS WHERE nick = '$nick'",$conexion);   
   if($duplicado==FALSE){
      $sql="INSERT INTO USUARIOS (nick, nombre, apellido, equipo, password, mail)";
      $sql.=" VALUES ('$nick','$nombre','$apellido','$equipo','$pass','$mail')";
      $bPude=mysql_query($sql,$conexion);
      if($bPude){echo "El usuario fue registrado correctamente.";}
   }else{
      echo "El nombre de usuario ingresado ya esta registrado, por favor ingrese uno nuevo.";
   }
}
mysql_free_result($duplicado);
mysql_close($conexion);
?>

Bueno cuando hago SIEMPRE me devuelve en $duplicado el resource id #4. Sea cual sea el nick que haya ingresado dice q me lo encuentra en el resource #4. Cuando la tabla "USUARIOS" se encuentra vacìa, o sea tiene 0 registros... No logro entender en que estoy fallando.
Agradeceria si alguien pudiera darme una mano con esto.
Saludos.
Título: Re: Ayuda Query Simple En Mysql
Publicado por: Avalon en Jueves 25 de Enero de 2007, 16:32
Hola. Para que funcione deberías hacer un cambio en tu código.

En lugar de

Código: Text
  1. if(&#036;duplicado==FALSE){
  2.  

deberías poner por ejemplo

Código: Text
  1. if(!mysql_num_rows(&#036;duplicado)){
  2.  


La función mysql_query solo va a retornar FALSE si se produce un error en la consulta. Si se ejecuta correctamente va a retornar un nuevo identificador, aunque no haya encontrado ningún registro que cumpla la condición. Por tanto lo que debes comprobar es si ha retornado registros y no si ha retornado FALSE.


Espero que te sirva ;)

Salu2,
Avalon
Título: Re: Ayuda Query Simple En Mysql
Publicado por: yaG en Jueves 25 de Enero de 2007, 16:59
Si, me sirviò!

Muchas gracias, yo pensaba que me devolvìa FALSE si no me encontraba registros con la consulta... Gracias again! :)