Foros del Web » Programando para Internet » PHP »

como impedir un registro duplicado en my db

Estas en el tema de como impedir un registro duplicado en my db en el foro de PHP en Foros del Web. estoy haciendo una aplicacion para usuarios.. donde el nombre de usuario es el email..... y lo que quiero hacer es impedir registrar a un usuario ...
  #1 (permalink)  
Antiguo 25/02/2009, 15:21
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 494
Antigüedad: 19 años, 8 meses
Puntos: 2
como impedir un registro duplicado en my db

estoy haciendo una aplicacion para usuarios..

donde el nombre de usuario es el email.....

y lo que quiero hacer es impedir registrar a un usuario con direccion de email repedita..

osea que el email se la clave como unico..

espero haberme dado a entender
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México
  #2 (permalink)  
Antiguo 25/02/2009, 15:32
Avatar de boby6killer  
Fecha de Ingreso: abril-2008
Mensajes: 81
Antigüedad: 16 años
Puntos: 1
Respuesta: como impedir un registro duplicado en my db

hazlo por la bd marcandolo como indice unico o mediante programacion debes primero hacer una busqueda a la bd con un count(*)
  #3 (permalink)  
Antiguo 25/02/2009, 15:39
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: como impedir un registro duplicado en my db

Hola Capimaster...

Cómo tu pregunta está hecha en el foro de php asumo que lo quieres programado. Pero sabes que con la DB directamente te evitas la programación? Siempre es mejor hacer todo de una vez con la DB...

Sin mas preámbulos...

Lo primero que tienes que haces es buscar, antes de ingresar el registro es si el correo digitado en el form existe previamente en la tabla:

Código php:
Ver original
  1. $q_sql="select * from usuarios where email_usuario={$_POST['mail']};"
  2. $e_sql=mysql_query($q_sql);
  3. //traes el número de registros que da la consulta
  4. $n_sql=mysql_num_rows($e_sql);
  5. if($n_sql==0)
  6. {
  7. /*, si el número es igual a 0 es porque no hay registros que coincidan y puedes guardar el registro*/
  8. echo "Se puede ingresar";
  9. }
  10. else
  11. {
  12. /*Si es diferente de 0 es porque si encontró registros por lo tanto no puedes ingresar ese registro*/
  13. echo "No se puede ingresar!!! El registro ya contiene ese correo electrónico"
  14. }

Algo así sería jeje

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #4 (permalink)  
Antiguo 25/02/2009, 15:47
Avatar de tata009  
Fecha de Ingreso: septiembre-2008
Ubicación: En mi casa
Mensajes: 426
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: como impedir un registro duplicado en my db

Antes de todo extraes los datos en forma de array y despues con IF le decis;


IF($result[nick]==$_POST['nick'])
{


echo"El usuario ya existe";



}


else

{

ACA LO INSERTAS EN LA BD

echo"Correctamente registrado";

}








Lo que haces con esto es extraer los datos y despues decirle que cuando el user envie el INPUT de NICK , con el IF te aseguras que en tu tabla no exista ese NICK.



PD: si lo queres hacer con el MAIL tambien le pones:

IF($result[nick]==$_POST['nick'] && $result[mail]==$_POST['mail'])
{


echo"El usuario o mail ya existe";



}


else

{

ACA LO INSERTAS EN LA BD

echo"Correctamente registrado";

}
__________________
SI pones un CD de MIcrosoft al reves aparecen mensajes satanicos pero si lo pones a la derecha PEOR SE TE INSTALA WINDOWS!!!!
Para webmasters e informaticos
  #5 (permalink)  
Antiguo 25/02/2009, 17:19
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 494
Antigüedad: 19 años, 8 meses
Puntos: 2
Respuesta: como impedir un registro duplicado en my db

orale tata.... muchas gracias!!!
para enserrarlo en un array seria asi??

array($result[nick]==);

o como recuerdame
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México
  #6 (permalink)  
Antiguo 25/02/2009, 17:29
Avatar de tata009  
Fecha de Ingreso: septiembre-2008
Ubicación: En mi casa
Mensajes: 426
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: como impedir un registro duplicado en my db

te lo hago desde la consulta:

$query = mysql_query("SELECT * FROM usuarios WHERE nick='$_POST[nick]' or email='$_POST[email]'");

if(mysql_num_rows($query)==0){

ACA LA CONSULTA PARA INSERTAR

}

else

{

echo '<script> alert("Usuario o mail ya registrado");</script>';


}



PD: Como veras utilizamos otro metodo que funciona igual






Para sacar datos en array se hace esto:

$variable1 = CONSULTA;

$variable2 = mysql_fetch_array($variable1);


$variable2[campo_base_datos];





Espero haberte ayudado un abrazo
__________________
SI pones un CD de MIcrosoft al reves aparecen mensajes satanicos pero si lo pones a la derecha PEOR SE TE INSTALA WINDOWS!!!!
Para webmasters e informaticos
  #7 (permalink)  
Antiguo 25/02/2009, 18:34
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 494
Antigüedad: 19 años, 8 meses
Puntos: 2
Respuesta: como impedir un registro duplicado en my db

Muchisimas gracias tata009, si me has ayudado con esto!!!
ya lo comprendi claramente... pero ahora tengo una duda??

yo los campos los recojo con un formulario en un archivo llamado form.php
y al form le pongo el action"subir.php" dentro de este esta el script para subir los datos a la bd.....

ahora comprendo que la ayuda que tu me das.. la tendre que hacer en mi archivo subir.php
pero me va salir un advertensia alert al darle aceptar a la adevertencia? que pasara me manda para atras?
o ke onda... me deja en el archivo subir.php?? advierto que este documento no imprime nada..... solo hace su funcion y de ahi redirecciona hasta la pagina principal.. despues de haber insertado todos los registros satisfactoriamente
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México
  #8 (permalink)  
Antiguo 25/02/2009, 20:38
Avatar de tata009  
Fecha de Ingreso: septiembre-2008
Ubicación: En mi casa
Mensajes: 426
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: como impedir un registro duplicado en my db

para que te mande para atras al hacer click pone esto fuera de los IF'S a lo ultimo de todo


Código HTML:
Ver original
  1. <META HTTP-EQUIV= "Refresh"CONTENT=\"0;URL=javascript:history.back() ">
__________________
SI pones un CD de MIcrosoft al reves aparecen mensajes satanicos pero si lo pones a la derecha PEOR SE TE INSTALA WINDOWS!!!!
Para webmasters e informaticos
  #9 (permalink)  
Antiguo 25/02/2009, 20:53
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: como impedir un registro duplicado en my db

recuerda que los índices asociativos(ej $_POST[nick]) siempre se encierran con comillas dobles o simples
$_POST["nick"] o $_POST['nick']
cuando estas trabajando en un servidor de desarrollo(un localhost) es buena opción que la configuración de errores sea estricto (a partir de php5.3 está disponible E_STRICT)
la configuracion de error en php.ini deberia ser E_ALL | E_STRICT, en caso de que no puedas acceder al php.ini, entonces al comienzo de tu script deberías de poner ésta función.

Cita:
error_reporting(E_ALL | E_STRICT);
la versión en desarrollo de php 6 está disponible en http://snaps.php.net a prepararnos para los cambios jejeje
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
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 07:04.