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
//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
if($duplicado==FALSE){
deberías poner por ejemplo
Código: Text
if(!mysql_num_rows($duplicado)){
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! :)