Pregunta:
Fecha: 09-06-2017 07:29:02
(En Español)
Les comento un poco, estaba realizando un sistema de información en el cual ingresaba registros notariales, para cada tabla tenia diseñado una vista de formulario y para conectar los formularios lo hacia mediante inner join que me traia los datos de la tabla relacionada.
pstdat. estoy lo estoy desarrollando mediante MVC
Ahora para el sistema se quiere que todo estos registros se lleven desde un único formulario, cosa de que el usuario no tenga que divagar por diferentes vistas, estos son uno de los requerimientos que exigen a último momento.
Por mi parte como desarrollador es muy tedioso porque me toco cambiar radicalmente el sistema, aunque son exigencias, ya diseñe la vista y el archivo del formulario, este ya lo conecte a los diferentes modelos y controladores que tenia, ahora mi pregunta es como conecto o alimento las diferentes tablas desde ese formulario.
psdata. los modelos y controladores deje los mismo haciendoles unas correcciones de datos que ya no se necesitaban, esto con el fin de no dejar tanto código en un solo lado y además por organización.
Gracias por sus sugerencias. Votos: 0 - Respuestas: 4 - Vistas: 16 Compartir en: Google Facebook Twitter LinkedIn Link
¿Cómo hacer una inserción multiple a diferentes tablas desde un único formulario?[No resuelta]
Un gusto saludarlos a todos.Les comento un poco, estaba realizando un sistema de información en el cual ingresaba registros notariales, para cada tabla tenia diseñado una vista de formulario y para conectar los formularios lo hacia mediante inner join que me traia los datos de la tabla relacionada.
pstdat. estoy lo estoy desarrollando mediante MVC
Ahora para el sistema se quiere que todo estos registros se lleven desde un único formulario, cosa de que el usuario no tenga que divagar por diferentes vistas, estos son uno de los requerimientos que exigen a último momento.
Por mi parte como desarrollador es muy tedioso porque me toco cambiar radicalmente el sistema, aunque son exigencias, ya diseñe la vista y el archivo del formulario, este ya lo conecte a los diferentes modelos y controladores que tenia, ahora mi pregunta es como conecto o alimento las diferentes tablas desde ese formulario.
psdata. los modelos y controladores deje los mismo haciendoles unas correcciones de datos que ya no se necesitaban, esto con el fin de no dejar tanto código en un solo lado y además por organización.
Gracias por sus sugerencias. Votos: 0 - Respuestas: 4 - Vistas: 16 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 09-06-2017 09:26:20 Hola Cesar, ante todo mis condolencias, es algo muy típico en sistemas que en medio del proceso de desarrollo (una vez que ya se paso por la etapa de relevamiento, analisis, diseño... etc.) te cambien las reglas de juego, hay que ser muy astuto para salir de esta trampa con clase, negociar el tiempo necesario para el nuevo analisis, diseño, adaptación de tu código y salir airoso, te deseo el mayor de los exitos.
He leido atentamente tu pregunta pero no has indicado si estas utilizando un framework de terceros (cakephp, codeigniter, symfony, zend, etc...) para implementar tu MVC. Si usas un framework deberás seguir los procedimientos establecidos en la documentación del mismo, cada uno tiene su forma para implementar esto que comentas.
Al margen de lo dicho, siempre que implementes la inserción o actualización en multiples tablas deberás utilizar una transacción para garantizar que tu insert no quede a medias (algunas tablas si, otras no), ya que en una transacción ante una falla podrás hacer un rollback de los cambios parciales que pudieron haberse realizado.
En MySQL para poder operar con transacciones tus tablas deben estar creadas en el engine InnoDB (típicamente, ya que en MySQL hay otros motores menos conocidos que también soportan transacciones), si usas MyISAM esto no sera posible.
Por ejemplo puedes enviar a ejecutar lo siguiente (a nivel Query):
START TRANSACTION; INSER INTO ......... INSER INTO ......... INSER INTO ......... COMMIT;
También puede que utilices algun objeto de conexión que te permita realizar desde PHP un $objConn->beginTransaction(), $objConn->commit() , $objConn->rollback() ..... esto dependerá de tu implementación.
Espero que mi respuesta te sea de ayuda.
Saludos y buen código! Votos: 1 - Link respuesta -
Fecha: 09-06-2017 10:07:28 :V . Al llegar al controlador crea un nuevo método que ejecute todas los otros métodos que graban los datos por separados desde cada vista o formulario , es decir:
si tenias formulario1 -->se ejecuta con --> funcion grabar1()
formulario2 -->se ejecuta con --> funcion grabar2()
ahora tienes newformurario( QUE CONTIENE formulario1 + formulario2 ) -->se ejecuta con -->
funcion new( "Llegado aqui , debes llamar a todas las funciones que antes se ejecutaban por separado"
PD: Al alimentar TAMBIEN TE REFIERES A UPDATE ? Votos: 1 - Link respuesta -
Fecha: 12-06-2017 06:26:37 Buenos dias Fernando
Muchas gracias por tu aporte, y de acuerdo a tu pregunta no no estoy utilizando framework es php puro y la base de datos esta montada en mysql
que pena esa parte de transaccion no te entiendo muy bien si podrias ser un poco mas detallado te lo agradeceria Votos: 0 - Link respuesta -
Fecha: 12-06-2017 06:34:10 Gracias Dyan
mira te entiendo esa parte pero como tal las otras vistas de formularios no las utilizare para no enrredar mas el codigo, conecte un unico formulario a los modelos y controladores que tenia
pero no se si por medio de UPDATE o alguna forma de conectar la informacion para que se almacene correctamente y como dice FERNANDO no dejar datos aislado
Muchas gracias Votos: 0 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
