Foros del Web » Programando para Internet » PHP »

Comprobar que un dato no existe aún en la base de datos.

Estas en el tema de Comprobar que un dato no existe aún en la base de datos. en el foro de PHP en Foros del Web. Estoy usando este script: Código: $username = $_REQUEST['username']; $password = $_REQUEST['password']; $email = $_REQUEST['email']; $result_email = mysql_query("SELECT * FROM $db5.users WHERE email='$email'"); $result_username = mysql_query("SELECT ...
  #1 (permalink)  
Antiguo 01/01/2010, 08:56
 
Fecha de Ingreso: diciembre-2009
Mensajes: 10
Antigüedad: 14 años, 3 meses
Puntos: 0
Comprobar que un dato no existe aún en la base de datos.

Estoy usando este script:

Código:
$username = $_REQUEST['username'];
$password = $_REQUEST['password'];
$email = $_REQUEST['email'];
			
$result_email = mysql_query("SELECT * FROM $db5.users WHERE email='$email'");
$result_username = mysql_query("SELECT * FROM $db5.users WHERE username='$username'");
			
if(!$result_email && !$result_username)
{
	$send = "INSERT INTO $db5.users(username, password, email) VALUES ('$username', '$password', '$email')";
	mysql_query($send);	
	echo "Registrado correctamente. Gracias.";
}
else if(!$result_email && $result_username)
{
	echo "Nombre de usuario ya registrado. Por favor, elige otro.";
}
else if($result_email && !$result_username)
{
	echo "Email ya registrado. Por favor, elige otro.";
}
else if($result_email && $result_username)
{
	echo "Usuario ya registrado";
}
Pero no funciona correctamente, pues siempre devuelve el "error" de Usuario ya registrado, aunque el email y usuario sean nuevos. ¿Sabéis alguna otra forma de hacerlo? Gracias.
  #2 (permalink)  
Antiguo 01/01/2010, 14:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Comprobar que un dato no existe aún en la base de datos.

NOTA que mysql_query() siempre devuelve un #resource

de modo que comparar lógicamente siempre y cuando la consulta no haya errado va a dar true

para comparar correctamente, primero debes obtener los valores del #resource, o bien, comparar el numero de resultados obtenidos por consulta usando mysql_num_rows()
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 01/01/2010, 15:09
 
Fecha de Ingreso: diciembre-2009
Mensajes: 10
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Comprobar que un dato no existe aún en la base de datos.

Gracias :D Lo he resuelto con

Código:
$result_email = mysql_query("SELECT email FROM $db5.users WHERE email='$email'");
$result_username = mysql_query("SELECT * FROM $db5.users WHERE username='$username'");

$result_email = mysql_num_rows($result_email);
$result_username = mysql_num_rows($result_username);		

if($result_email == 0 && $result_username == 0)
{
codigo
}

Etiquetas: comprobar, dato, existe
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 00:40.