Foros del Web » Programando para Internet » PHP »

insert en 2 tablas F_K

Estas en el tema de insert en 2 tablas F_K en el foro de PHP en Foros del Web. Hola a todos Tengo un formulario con los siguientes campos Actividad:_________________ Fecha_i:__________________ Fecha_f:__________________ Asignacion:________________ Estado:___________________ Observaciones:_____________ Tengo 2 tablas en mi base de datos: la ...
  #1 (permalink)  
Antiguo 10/01/2013, 10:55
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
insert en 2 tablas F_K

Hola a todos

Tengo un formulario con los siguientes campos

Actividad:_________________
Fecha_i:__________________
Fecha_f:__________________
Asignacion:________________
Estado:___________________
Observaciones:_____________


Tengo 2 tablas en mi base de datos:

la primera es para las observaciones, y esta me guarda la fecha en que se creo la observacion, y la F_K de la tabla actividad

---------------------------
id_observacion P_K
Fecha_observacion
Observaciones
id_actividad F_K

y la otra tiene todos los campo que mencione anteriormente

--------------------------------------
id_actividad P_K
actividad
fecha_i
fecha_f
asignacion
estado

No se como hacer el insert para estas dos tablas y que si yo despues quiero agregar otra observacion quede asignada al id_actividad que correspopnde

La relacion que hay es uno a muchos de una actividad a muchas observaciones

espero me puedan ayudar

Gracias :)
  #2 (permalink)  
Antiguo 10/01/2013, 11:05
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: insert en 2 tablas F_K

Cita:
No se como hacer el insert para estas dos tablas y que si yo despues quiero agregar otra observacion quede asignada al id_actividad que correspopnde
Suponiendo que la base de datos está en un servidor MySQL, no hay mucho misterio.
1) Das de alta la actividad (INSERT).
2) Si el alta es exitoso, recuperas el ID autoincremental generado (mysql_insert_id()).
3) Con ese valor como FK; insertas una a una las observaciones.

El tema es mantener el orden de inserciones, y recordar que sólo si la actividad existe podrás insertas las observaciones. Por eso validar el éxito del insert es crítico. De lo contrario mysql_insert_id() devolverá cero (0) como FK, lo que es imposible.

Ahora bien, si las observaciones son en diferentes momentos, cada vez que vayas a realizar un alta de observaciones, previamente tienes que haber recuperado el ID correspondiente de la actividad.
¿Eso lo tienes claro?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 10/01/2013, 11:13
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Respuesta: insert en 2 tablas F_K

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Suponiendo que la base de datos está en un servidor MySQL, no hay mucho misterio.
1) Das de alta la actividad (INSERT).
2) Si el alta es exitoso, recuperas el ID autoincremental generado (mysql_insert_id()).
3) Con ese valor como FK; insertas una a una las observaciones.

El tema es mantener el orden de inserciones, y recordar que sólo si la actividad existe podrás insertas las observaciones. Por eso validar el éxito del insert es crítico. De lo contrario mysql_insert_id() devolverá cero (0) como FK, lo que es imposible.

Ahora bien, si las observaciones son en diferentes momentos, cada vez que vayas a realizar un alta de observaciones, previamente tienes que haber recuperado el ID correspondiente de la actividad.
¿Eso lo tienes claro?
Entonces primero hay que crear solo el insert de la actividad y despues hay si puedo ingresar una observacion????
como recupero el id que de cada actividad??

me puedes ayudar

Etiquetas: formulario, insert, tabla, tablas
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 01:05.