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

Fantasma de key duplicado

Estas en el tema de Fantasma de key duplicado en el foro de Mysql en Foros del Web. Buenas, les comento mi problema, casi diria que nose si problema seguramente no soy el primero que cae en esta encrucijada... tengo una tabla en ...
  #1 (permalink)  
Antiguo 26/08/2008, 03:49
Avatar de sonic22  
Fecha de Ingreso: abril-2008
Ubicación: Rosario
Mensajes: 10
Antigüedad: 16 años
Puntos: 0
Pregunta Fantasma de key duplicado

Buenas, les comento mi problema, casi diria que nose si problema seguramente no soy el primero que cae en esta encrucijada...

tengo una tabla en mysql con un campo id primary en auto_increment

este es mi script para realizar un insert atras de otro hasta que no me queden mas elementos en el for

Código PHP:
if(is_array($_POST['dirigido'])){

$tot count($_POST['dirigido']);

for(
$i=0$i<=$tot$i++){

if(!empty(
$_POST['dirigido'][$i])){
$nivel     $_POST['nivel'][$i];
$dirigido  $_POST['dirigido'][$i];
$fecha     $_POST['fecha'][$i];
$actividad $_POST['actividad'][$i];

include(
"conexion.php");
mysql_query("INSERT INTO circulares VALUES(LAST_INSERT_ID(),'$i','$nivel','$dirigido','$fecha','$actividad')",$link);
include(
"desconexion.php");

}

}


Ahora la parte mas curiosa de esto es que me tira error de Key duplicada cuando el valor que le estoy asignando es "LAST_INSERT_ID()" que en teoria al estar en auto_increment es imposible que se duplique alguna entrada...

PD: Lo unico que no probe fue eliminar la tabla y crearla de nuevo, ya que me parece deberia haber alguna explicacion logica de este error, no puede ser algo esoterico.

desde ya un saludo y muchas gracias.
  #2 (permalink)  
Antiguo 26/08/2008, 07:43
 
Fecha de Ingreso: agosto-2008
Ubicación: Medellin
Mensajes: 7
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Fantasma de key duplicado

Hola.
A mi forma de ver las cosas, la funcion LAST_INSERT_ID() recupera el ultimo ID que ha sido generado en la ultima operacion de inserccion.
Por otro lado, si tu campo es auto increment podrias escribir el procedimiento de inserccion asi:

Código PHP:
if(is_array($_POST['dirigido'])){

$tot count($_POST['dirigido']);

for(
$i=0$i<=$tot$i++){

if(!empty(
$_POST['dirigido'][$i])){
$nivel     $_POST['nivel'][$i];
$dirigido  $_POST['dirigido'][$i];
$fecha     $_POST['fecha'][$i];
$actividad $_POST['actividad'][$i];

include(
"conexion.php");
[
B]mysql_query("INSERT INTO circulares(nivel, dirigido,fecha,actividad) VALUES('$i','$nivel','$dirigido','$fecha','$actividad')",$link);[/B]
include(
"desconexion.php");

}

}


y dejar que mysql genere las claves automaticamente.
Espero sea lo que estas preguntando y te sea de ayuda.
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 08:15.