Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Controlar "Duplicate entry"

Estas en el tema de Controlar "Duplicate entry" en el foro de Bases de Datos General en Foros del Web. Hola. En una base de datos MySql gestionada con php y tengo una tabla, en la que hay un campo que es primary key y ...
  #1 (permalink)  
Antiguo 30/05/2004, 09:31
Avatar de sedinho  
Fecha de Ingreso: marzo-2003
Mensajes: 91
Antigüedad: 21 años, 1 mes
Puntos: 0
Controlar "Duplicate entry"

Hola. En una base de datos MySql gestionada con php y tengo una tabla, en la que hay un campo que es primary key y otro que lo he definido como unico.
Cuando desde php (a través de un formulario) intento meter datos a la base de datos, si meto algun dato en los campos que he comentado antes que ya existia me dice "Duplicate entry '11111111' for key 1", es decir, que '111111111' ya ha sido introducido en ese campo en otro registro. Mi pregunta es:
Para que en vez de salir ese mensaje saliera, por ejemplo: "Atención '1111111111' ya ha sido introducido con anterioridad. Por favor introduza otro valor", ¿que he de hacer? Key 1 es para el campo con primary key y key 2 es para el campo unico, ¿como controlo que lo que esta repetido es el key 1 o el key 2?

Espero haberme explicado. Muchas gracias.
  #2 (permalink)  
Antiguo 30/05/2004, 09:51
 
Fecha de Ingreso: noviembre-2002
Mensajes: 190
Antigüedad: 21 años, 5 meses
Puntos: 0
mysql_query("INSERT INTO numero SET numero=$numero") or die("No se pudo insertar $numero, ya existe.<br>");

saludos!
  #3 (permalink)  
Antiguo 30/05/2004, 10:50
Avatar de sedinho  
Fecha de Ingreso: marzo-2003
Mensajes: 91
Antigüedad: 21 años, 1 mes
Puntos: 0
El problema es que inserto los datos todos de una vez. Lo hagovasi:

//elegimos la consulta
$sql = "INSERT INTO usuarios VALUES ('$nombre', '$apellidos', '$dni', '$direccion', '$telefono', '$usuario', '$contrasena')";

//Enviamos la consulta.
$consulta= mysql_query($sql,$link) or die ('No se puede insertar datos por la siguiente razón: ' . mysql_error());

Si lo que quiero es mantener esta estructura (para insertar todo a la vez), ¿se podria hacer lo que he dicho antes?

Muchas gracias.
P.D.: usuario es la clave principal y dni es el campo unico
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 04:32.