Comunidad de diseño web y desarrollo en internet online

Evitar datos repetidos en una bd validando varios campos

Citar            
MensajeEscrito el 01 Mar 2012 06:58 pm
Hola Chicos! Tengo un formulario de registro de usuarios para unas tarjetas de regalo, en el formulario deben poner, entre otros datos, $nombre, $direccion, $fecha_nacimiento. Lo que debo de hacer es que un mismo usuario no se registe dos o mas veces validando en la base de datos que ninguno de estos tres campos se repita.

Ya tengo esta opcion:

$busqueda= mysql_query("SELECT nombre FROM tabla WHERE nombre='".$nombre."'");
if(mysql_num_rows($busqueda)>0) {
echo "El nombre de usuario no se encuentra disponible. Por favor intente con otro.<br>";
echo "<a href=\"javascript:history.back()\">Regresar</a>";

El problema que tengo es que con esto solo puedo validar el campo de nombre, pero necesito validar al mismo tiempo los otros dos campos de direccion y fecha de nacimiento, para saber que es la misma persona, ya que si una "Margarita" se registra, y otra "Margarita" diferente con fecha de nacimiento diferente quiere registrarse, no podrá hacerlo debido a que solo estoy utilizando el campo de nombre para validar...

Espero me puedan ayudar!
Saludos!

Por minfhm

13 de clabLevel



 

chrome
Citar            
MensajeEscrito el 02 Mar 2012 04:15 pm
Necesitas modificar la consulta SQL que estás ejecutando en la base de datos:

"SELECT nombre FROM tabla WHERE nombre='".$nombre."' AND direccion='".$direccion."' AND fecha_nacimiento='".$fecha_nacimiento."'

¿El formulario es para usuarios que ya están registrados en la BD? porque si es así te conviene preguntar por el id de usuario, de esa forma optimizas mucho más la consulta y, por ende, el rendimiento...

Saludos

Por diego_007

9 de clabLevel



Genero:Masculino  

Developer / Designer

opera
Citar            
MensajeEscrito el 02 Mar 2012 04:58 pm
Hola! Muchas gracias diego_007 por el dato, voy a intentarlo en seguida y te aviso su funciono :)

El registro es para usuarios nuevos, para obtener una tarjeta de regalo, pero da mucho la casualidad que se registran dos o tres o cuantas veces quieren para tener mas tarjetas, entonces por eso trato de poner todos los "candados" que pueda para evitar eso... pense lo de la id de usuario pero siento que es mas sencillo que inventen otro id y se registren de nuevo...

Bueno, que tengan buen dia!

Por minfhm

13 de clabLevel



 

chrome
Citar            
MensajeEscrito el 02 Mar 2012 05:09 pm
Pero en ese caso el registro de los usuarios en tu web deberías validarlo con el correo electrónico del propio usuario (envías un enlace de activación de cuenta, al correo del usuario), de esta manera, si alguien quiere registrarse dos veces, deberá tener dos correos electrónicos, ahí sí vas a reducir bastante el "fraude"...

Por diego_007

9 de clabLevel



Genero:Masculino  

Developer / Designer

opera
Citar            
MensajeEscrito el 02 Mar 2012 05:13 pm
Ohh! tienes razon, de hecho el php hace que inserte los datos en la bd y tambien en la tarjeta de regalo que se envia a su correo. Asi que pondre la validacion para el email del usuario...

Sigo haciendo las pruebas jeje, Mil gracias :)

Por minfhm

13 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.