Foros del Web » Programando para Internet » PHP »

No me ingresa campos a la base de datos.. Porque..?

Estas en el tema de No me ingresa campos a la base de datos.. Porque..? en el foro de PHP en Foros del Web. Este code no me corre .. deveria validar si un usuario existe en una bd .. y si no existe los deberia poner ..pero no ...
  #1 (permalink)  
Antiguo 14/03/2005, 07:36
Avatar de pulento  
Fecha de Ingreso: noviembre-2002
Ubicación: En un pequeño, helado, obscuro reino... llamado Dinamarca.
Mensajes: 1.852
Antigüedad: 15 años
Puntos: 1
No me ingresa campos a la base de datos.. Porque..?

Este code no me corre .. deveria validar si un usuario existe en una bd .. y si no existe los deberia poner ..pero no lo hace ... Que sera...?


<?
$user_name = $_REQUEST['user_name'];
$pass = $_REQUEST['pass'];
$date_now = date("Y")."/".date("m")."/".date("d"); //date("d/m/Y h:i");
mysql_connect("localhost","Xioottye","TKKLLAA4") or die(mysql_error());
mysql_select_db("Xioottye") or die(mysql_error());
mysql_query("INSERT INTO tabel_test(user_name,pass,date_now) values('$user_name','$pass','$date_now')");


$query = mysql_query("SELECT user_name FROM tabel_test WHERE user_name =='".$_REQUEST['user_name']."'";) or die(mysql_error());

//aqui ves, si hay coincidencias
if (mysql_num_rows($query) > 0){ //si es mayor a cero existe tu registro
print "<table border=10>";
print "<tr><td> EXISTE ......! </td></tr>";
print "</table>";
else{
mysql_query("INSERT INTO tabel_test(user_name,pass,date_now) values('$user_name','$pass','$date_now')");
}
?>


Salu2 y gracias
__________________
http://www.flotdesign.dk/
  #2 (permalink)  
Antiguo 14/03/2005, 07:45
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 13 años
Puntos: 34
Y si le pones un "or die" al insert? no tiene error ese query?

PD: Que es else{ ?? donde este el } que cierra al if?
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #3 (permalink)  
Antiguo 14/03/2005, 07:52
 
Fecha de Ingreso: febrero-2005
Mensajes: 396
Antigüedad: 12 años, 10 meses
Puntos: 1
Podrian se rvarias cosas.

Primero chequea que efectivamente el insert esté funcionando bien.

Por otro lado, las comparaciones de cadenas, mejor hacerlas con "LIKE" o algun operador similar. En tu caso:

Código PHP:
mysql_query("SELECT user_name FROM tabel_test WHERE user_name LIKE '".$_REQUEST['user_name']."'";) 
Espero que te sirva de ayuda.

Un saludo

Zerjillo
  #4 (permalink)  
Antiguo 14/03/2005, 08:24
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 13 años
Puntos: 34
El like consume mas recursos, ya el hecho de comparar string lo hace, pero el like no es recomendable.
Pero biendo un poco el codigo, tenes en la comparacio dos = (==), en sql se usa uno solo. me llama la atencion que no te haya tirado error.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #5 (permalink)  
Antiguo 14/03/2005, 22:41
Avatar de Keitaro  
Fecha de Ingreso: marzo-2005
Ubicación: Mi Casa
Mensajes: 33
Antigüedad: 12 años, 8 meses
Puntos: 0
Yo creo que es por el doble == que tiene antes del REQUEST en la sentencia de la consulta de base de datos.

Respecto a la cremilla simple, no es necesario ponerla "'", ya que usuaste comillas dobles en el inicio de la senctencia de MySQL. Si usases comilla simple, ahí tienes que usar el "'".

P/E: "SELECT * FROM my_table WHERE div = '$_POST[enviado]'"
__________________
:si: :si: :si: Sólo sé que nada sé... :si: :si: :si:

Santiago de Chile
  #6 (permalink)  
Antiguo 15/03/2005, 02:10
Avatar de JuanKa  
Fecha de Ingreso: septiembre-2004
Mensajes: 468
Antigüedad: 13 años, 3 meses
Puntos: 1
<?
$user_name = $_REQUEST['user_name'];
$pass = $_REQUEST['pass'];
$date_now = date("Y")."/".date("m")."/".date("d"); //date("d/m/Y h:i");
mysql_connect("localhost","Xioottye","TKKLLAA4") or die(mysql_error());
mysql_select_db("Xioottye") or die(mysql_error());
mysql_query("INSERT INTO tabel_test(user_name,pass,date_now) values('$user_name','$pass','$date_now')");


$query = mysql_query("SELECT user_name FROM tabel_test WHERE user_name ='$user_name' ") or die(mysql_error());
//aqui ves, si hay coincidencias
if (mysql_num_rows($query) > 0){ //si es mayor a cero existe tu registro
print "<table border=10>";
print "<tr><td> EXISTE ......! </td></tr>";
print "</table>";
}else{
mysql_query("INSERT INTO tabel_test(user_name,pass,date_now) values('$user_name','$pass','$date_now')");
}
?>

Espero que te sirva.
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 19:15.