Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] evitar registro duplicado php en base de datos mysql

Estas en el tema de evitar registro duplicado php en base de datos mysql en el foro de PHP en Foros del Web. Buenas tardes, es mi primer formulario registrando datos en una db mysql, hasta ahora e logrado registrar mis datos pero quiero evitar que se dupliquen ...
  #1 (permalink)  
Antiguo 20/09/2014, 00:34
Avatar de sarumanice  
Fecha de Ingreso: mayo-2008
Ubicación: Lima, Peru
Mensajes: 103
Antigüedad: 16 años
Puntos: 4
evitar registro duplicado php en base de datos mysql

Buenas tardes, es mi primer formulario registrando datos en una db mysql, hasta ahora e logrado registrar mis datos pero quiero evitar que se dupliquen ciertos campos como "usuario" y "email" para esto les copio el archivo de registro.php que ejecuta mi formulario. saludos.

Agregue la busqueda pero no me funciona, sigue registrando duplicados para el usuario, ya una ves solucionado agregare lo mismo para email

Código PHP:
<?php
include("conexion.php");
$con=conectar();

if(isset(
$_REQUEST['grabar'])){

    
$usuario $_REQUEST["usuario"];
    
$nombre $_REQUEST["nombre"];
    
$apellidos $_REQUEST["apellidos"];
    
$email $_REQUEST["email"];

    
$busquedamysql_query("SELECT usuario FROM tabla WHERE usuario='$usuario'"); // inicio de mi consulta para evitar duplicado
    
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>"
    } else { 
// fin de mi consulta 

    
$query="insert into suscriptores values (NULL, '$usuario', '$nombre', '$apellidos', '$email', now(), default, default)";
    
$dato=mysql_query($query,$con); 

    if (!
$dato){
        echo 
"No se inserto los datos</br>" .mysql_error();
    }else{
        echo 
"Se insertaron los datos correctamente</br>";
    }
}
    echo 
"<a href='index.php'>Regresar al inicio</a>";


?>
  #2 (permalink)  
Antiguo 20/09/2014, 03:35
 
Fecha de Ingreso: marzo-2011
Ubicación: Oaxaca
Mensajes: 252
Antigüedad: 13 años, 1 mes
Puntos: 17
Respuesta: evitar registro duplicado php en base de datos mysql

no te la complique amigo, puedes evitar eso desde la base de datos directamente

solo tienes que poner en los campos como valor UNICO y listo, si intentan insertar un valor repetido en alguno de los 2 campos ya sea en php, java, pyton, etc. o inclusive en el mismo MYSQL, no se va a poder, ya que son reglas que estan dejando indicadas en el manejador de bases de datos

suerte amigo y espero que te sirva, cualquier cosa, comenta
  #3 (permalink)  
Antiguo 20/09/2014, 07:51
 
Fecha de Ingreso: febrero-2008
Ubicación: Caravana
Mensajes: 455
Antigüedad: 16 años, 2 meses
Puntos: 30
Respuesta: evitar registro duplicado php en base de datos mysql

prueba asegurate de que cuando pongas un usuario que existe no entre en el if, lo mejor es que ponga el if al reves si no esta seguro el usuario lo introduces y en el else le das error.
  #4 (permalink)  
Antiguo 20/09/2014, 09:54
Avatar de sarumanice  
Fecha de Ingreso: mayo-2008
Ubicación: Lima, Peru
Mensajes: 103
Antigüedad: 16 años
Puntos: 4
Respuesta: evitar registro duplicado php en base de datos mysql

Muchas gracias, lo comprobe y anda bien, creo que ahora tengo que configurar que cuando bote ese error salga un mensaje mas amigable para que intente nuevamente no?

Gracias

Cita:
Iniciado por juangemelo01 Ver Mensaje
no te la complique amigo, puedes evitar eso desde la base de datos directamente

solo tienes que poner en los campos como valor UNICO y listo, si intentan insertar un valor repetido en alguno de los 2 campos ya sea en php, java, pyton, etc. o inclusive en el mismo MYSQL, no se va a poder, ya que son reglas que estan dejando indicadas en el manejador de bases de datos

suerte amigo y espero que te sirva, cualquier cosa, comenta
  #5 (permalink)  
Antiguo 02/12/2014, 15:49
Avatar de cecitn  
Fecha de Ingreso: noviembre-2014
Ubicación: misiones
Mensajes: 44
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: evitar registro duplicado php en base de datos mysql

hola tengo el mismo problema, lo tengo en la bd como campo unico perooo no me muestra el error en pantalla solo me dice guardado correctamente y al ir a la bd veo q no me repite o sea funciona pero en la interfaz quiero agregar algun alerta q me diga no se registro xq ya se encuentra o algo x el estilo..
desde ya muuchas gracias
  #6 (permalink)  
Antiguo 02/12/2014, 15:56
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: evitar registro duplicado php en base de datos mysql

Añade esto alfinal de la consulta

or die (mysql_error());

Y saldra el error en pantalla de por que no se inserto

Etiquetas: duplicado, formulario, mysql, registro, select, sql, tabla
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 11:28.