Foros del Web » Programando para Internet » PHP »

AYUDAAAA!!! Rarísimo lo que pasa aquí - Para expertos

Estas en el tema de AYUDAAAA!!! Rarísimo lo que pasa aquí - Para expertos en el foro de PHP en Foros del Web. Tengo este código: if (empty($alta)) { /*muestro formulario de ingreso de mail*/ } else { $Consulta="SELECT * FROM clientes WHERE mail='$mail'"; $resultado=mysql_num_rows(mysql_query($Consulta)); if ($resultado==0) { ...
  #1 (permalink)  
Antiguo 15/02/2004, 17:24
 
Fecha de Ingreso: noviembre-2002
Mensajes: 73
Antigüedad: 21 años, 4 meses
Puntos: 0
AYUDAAAA!!! Rarísimo lo que pasa aquí - Para expertos

Tengo este código:

if (empty($alta))
{
/*muestro formulario de ingreso de mail*/
}
else
{
$Consulta="SELECT * FROM clientes WHERE mail='$mail'";
$resultado=mysql_num_rows(mysql_query($Consulta));

if ($resultado==0)
{
mysql_query("INSERT INTO clientes (mail) VALUES ('$mail')",$link);
echo("insertado");
}
else
{
echo("NO insertado");
}
}

Esto es parte de un código un poco mas grande que lo que hace es ser llamado desde un formulario con este cabezal <form method=post action="registro.php?alta=1">
Sucede que es para ingresar el mail de un cliente en una tabla, y según el código de arriba lo que hago es verificar si ya existe, en caso negativo lo inserto en la tabla "clientes", sinó muestro un mensaje. Este "estúpido" código me lleva toda la tarde sin saber porqué no funciona.

Lo que ocurre es lo siguiente, estándo así como está, al momento de ejecutar la consulta de verificación ésta siempre me dá afirmativo y en el if se ejecuta la sentencia echo("NO INSERTADO"), o sea que si ingreso un mail QUE EFECTIBAMENTE NO ESTABA EN LA TABLA la consulta me dice que está, y por lo tanto se muestra el mensaje "NO insertado", y me fijo por otro lado con el programita MySQL Front (manejador de bases de datos de My SQL) y efectivamente existe un registro con el registro por el cual consulto, o sea que se inserta antes de ejecutar la consulta, esto ocurre siempre con cualquier mail que intento agregar.

Sin mebargo, si quito la línea que contiene:
mysql_query("INSERT INTO clientes (mail) VALUES ('$mail')",$link);
el código se ejecuta bien, si el mail no estaba en la tabla se muestra el mensaje "insertado", si estaba se muestra "NO insertado".

Redondeando, si pongo la sentencia mysql_query("INSERT INTO clientes (mail) VALUES ('$mail')",$link); ésta como que siempre se ejecuta antes de la consulta anterior donde se pregunta si el mail existe en la tabla o no...

Hace como 4 horas que estoy en la vuelta cambiando el código de todas las maneras posibles y siempre ocurre lo mismo, el INSERT ese se ejecuta antes que lo demás Y YA NO SE QUE HACEEEEEEEEEEEEERRRRRRRRR!!!!!

Plisssssss... alguien me puede ayudar???

Mil graciassssss...

Ahh, y el PHP funciona bárbaro, tengo variós sitios que usan BD y nunca había experimentado ningún tipo de problemas...
  #2 (permalink)  
Antiguo 15/02/2004, 21:27
 
Fecha de Ingreso: febrero-2004
Ubicación: Titirilquen
Mensajes: 2
Antigüedad: 20 años, 2 meses
Puntos: 0
Mira... yo haría algo asi...

<?PHP
$_SWITCH=$_POST['ALTA'];
IF ($_SWITCH==1){
//realizo actividades de inserción.
ELSE
//hago lo que quiera.
}
?>

además noto que en la parte de la consulta de tu codigo no tienes el link de conexion a la base....saludos..
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 15:05.