Foros del Web » Programando para Internet » PHP »

Guardar datos en Mysql desde un formulario, aunque se repitan.

Estas en el tema de Guardar datos en Mysql desde un formulario, aunque se repitan. en el foro de PHP en Foros del Web. Tengo este código y me funciona correctamente, pero si repito algun registro me da el mensaje "No se ha podido añadirse el registro Ya existe ...
  #1 (permalink)  
Antiguo 08/10/2008, 08:15
 
Fecha de Ingreso: septiembre-2008
Mensajes: 41
Antigüedad: 15 años, 6 meses
Puntos: 0
Sonrisa Guardar datos en Mysql desde un formulario, aunque se repitan.

Tengo este código y me funciona correctamente, pero si repito algun registro me da el mensaje "No se ha podido añadirse el registro Ya existe un campo con este DNI".

Como puedo hacer que grabe igual los datos en la base, sin importar que repita un registro?.

Estoy recien entrando en el mundo php y estoy aprendiendo.

Muchas gracias.
-----------------------------------------------

<?
$base="formulario";

$tabla="datos";

$v1=$_POST['p_v1'];
$v2=$_POST['p_v2'];
$v3=$_POST['p_v3'];
$v4=$_POST['p_v4'];
$v5=$_POST['p_v5'];

$conexion=mysql_connect("localhost","root","admin" );

mysql_select_db($base,$conexion);

mysql_query("INSERT INTO $tabla (NOMBRE, ANEXO, DPTO, PROBLEMA, SOLUCION) VALUES ('$v1', '$v2', '$v3', '$v4', '$v5');", $conexion);
if (mysql_errno($conexion)==0){echo "<h2><CENTER>Registro AÑADIDO</CENTER></b></H2>";
}else{
if (mysql_errno($conexion)==1062){echo "<h2>No ha podido añadirse el registro<br>Ya existe un campo con este DNI</h2>";
}else{
$numerror=mysql_errno($conexion);
$descrerror=mysql_error($conexion);
echo "Se ha producido un error nº $numerror que corresponde a: $descrerror <br>";
}

}
mysql_close();

?>
  #2 (permalink)  
Antiguo 08/10/2008, 08:21
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: Guardar datos en Mysql desde un formulario, aunque se repitan.

El problema que tienes viene originado probablemente porque la clave primara (NOMBRE) no puede estar duplicada.

Si lo que deseas es duplicar el campo NOMBRE agrega un nuevo campo llamado por ejemplo "ID" que sea convierta en clave primaria autoincrement, a parte no te olvide s de quitar al campo NOMBRE el atributo CLAVE PRIMARIA.

Saludos!
  #3 (permalink)  
Antiguo 08/10/2008, 08:23
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Respuesta: Guardar datos en Mysql desde un formulario, aunque se repitan.

Hola,

El error te viene del Mysql, q tendra definido el campo DNI como clave primaria y única!
Aqui es donde te captura el error y te muestra tu msg!
Código PHP:
if (mysql_errno($conexion)==1062){ 
Sigue lo q te ha dicho SynKronice, q lo lei mas tarde!
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #4 (permalink)  
Antiguo 08/10/2008, 08:26
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Guardar datos en Mysql desde un formulario, aunque se repitan.

Que tal dilagos, obviamente que si ese DNI del que hablas esta establecido como Clave primaria en tu tabla no vas a poder ingresar otro registro con ese mismo dato, ahora esto es parte de la integridad referencial de las BD, lo que podrias hacer antes de ingresar un nuevo registro es verificar que efectivamente ese DNI no este en la BD, haces tu respectiva consulta con un SELECT, y verificas con la función mysql_num_rows() si el número de filas devuelto es igual a cero es porque no existe un registro en tu tabla con ese DNI y posteriormente procedes a realizar el INSERT.



PD: Aparte de lo que te dice Synkronice
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #5 (permalink)  
Antiguo 08/10/2008, 08:40
 
Fecha de Ingreso: septiembre-2008
Mensajes: 41
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Guardar datos en Mysql desde un formulario, aunque se repitan.

Muchachos
son todos unos expertos.
He aprendido bastante con uds.
Gracias,
me acaba de funcionar.

Espero no se molesten si les pregunto otra cosa despues
jeje
saludos
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 16:39.