Foros del Web » Programando para Internet » PHP »

por que si se cumple el if no funciona?

Estas en el tema de por que si se cumple el if no funciona? en el foro de PHP en Foros del Web. Hola, por que si se cumple el if no funciona y me guarda el registro :s Código: $slq=mysql_query("SELECT * FROM usuarios where mail='$mail_1'"); $slq_2=mysql_query("SELECT * ...
  #1 (permalink)  
Antiguo 21/04/2010, 13:34
 
Fecha de Ingreso: enero-2005
Mensajes: 386
Antigüedad: 19 años, 11 meses
Puntos: 3
por que si se cumple el if no funciona?

Hola, por que si se cumple el if no funciona y me guarda el registro :s

Código:
$slq=mysql_query("SELECT * FROM usuarios where mail='$mail_1'");
$slq_2=mysql_query("SELECT * FROM usuarios where usuario='$usuario_1'");

if($mail_1==$sql){

echo "<center><p style=\"border:1px solid red; width:400px;\">El mail que ingresaste esta siendo usado por otra cuenta.<br><a href = 'javascript:history.back()'>Regresar al registro</a> </p></center>";

						}  
		else {
			if($usuario_1==$sql_2){
				echo "<center><p style=\"border:1px solid red; width:400px;\">El usuario que ingresaste ya existe<br><a href = 'javascript:history.back()'>Regresar al registro</a> 			            </p></center>";
				   		          }
			else 
			{
			$sql="insert into usuarios (usuario,mail,pass,fecha,sms,validar) values('$usuario_1','$mail_1','$pass_1','$sdate','$sms','$validar')";
			$res= mysql_query($sql);
				if ($res) {
				echo "<center><p style=\"border:1px solid red; width:400px;\">Usuario registrado correctamente, verifica tu mail para activar la cuenta</p></center>";
			  }
				else
        		 {echo "<center><p style=\"border:1px solid red; width:400px;\">Usuario no registrado, Favor de contactar al administrador</p></center>"  , mysql_error();}
			}
			}

}
  #2 (permalink)  
Antiguo 21/04/2010, 13:42
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 15 años
Puntos: 16
Respuesta: por que si se cumple el if no funciona?

Eso es imposible.

No obstante, veo un posible error

if($mail_1==$sql){

No querras poner

if($mail_1==$slq){
  #3 (permalink)  
Antiguo 21/04/2010, 13:50
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 21 años
Puntos: 89
Respuesta: por que si se cumple el if no funciona?

Tienes un problema aparte de que no ejecuta el if.

Vamos por parte...

Primero...

Código PHP:
Ver original
  1. $slq=mysql_query("SELECT * FROM usuarios where mail='$mail_1'");
  2. //...
  3. if($mail_1==$sql) //...

Fíjate... en la consulta se llama $slq, y en el if se llama $sql. Eso te pasó con las 2 variables ( $slq y $slq_2 ).

Segundo...

$slq y $slq_2 son arreglos que contienen los datos devueltos de las consultas. Por eso, debes especificar el campo al hacer la comparación.

Código PHP:
Ver original
  1. if($mail_1==$slq['mail']){ //...

Y por último, tu comparación está mala.

Fíjate en lo siguiente :

Código PHP:
Ver original
  1. $slq=mysql_query("SELECT * FROM usuarios where mail='$mail_1'");
  2. if($mail_1==$slq['mail']){ //...

Leamos lo que dice allí :

Selecciono todo lo que existe en la tabla usuarios, donde el campo mail sea igual a $mail_1. Luego, comparo si $mail_1 es igual al valor que existe dentro del campo mail.

En otras palabras, esa comprobación, SIEMPRE será cierta, porque la selección la haces a base del email, y luego comparas si el email devuelto es igual al email que ya tenías, lo que siempre será cierto, SIEMPRE.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #4 (permalink)  
Antiguo 21/04/2010, 15:23
 
Fecha de Ingreso: enero-2005
Mensajes: 386
Antigüedad: 19 años, 11 meses
Puntos: 3
Respuesta: por que si se cumple el if no funciona?

Muchas Gracias :D

Etiquetas: cumple
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 21:21.