Foros del Web » Programando para Internet » PHP »

bloque de registro desde php

Estas en el tema de bloque de registro desde php en el foro de PHP en Foros del Web. Hola: Soy nuevo en el foro y me estoy iniciando en el mundo de la programación con php. Y me encuentro atascado en un problema ...
  #1 (permalink)  
Antiguo 04/10/2014, 11:18
 
Fecha de Ingreso: octubre-2014
Ubicación: Bilbao
Mensajes: 14
Antigüedad: 9 años, 6 meses
Puntos: 0
bloque de registro desde php

Hola:

Soy nuevo en el foro y me estoy iniciando en el mundo de la programación con php. Y me encuentro atascado en un problema que es recurrente en los foros de internet y que sin embargo no parece que haya una solución eficaz. Quiero hacer lo siguiente:

1. Hacer una select a la base de datos y recuperar un registro de una tabla.
2. Rellenar un formulario de edición con los datos extraídos de la BD.
3. Permitir que el usuario modifique los campos del formulario y enviar los datos modificados, con lo cual el "action" del formulario llamará a un php que se encargará de
4. Recoger los datos modificados en el formulario y guardarlos de nuevo en la BD.

Parece simple. El problema está en la concurrencia en el acceso a la base de datos. Es decir ¿qué pasa si entre el paso 1 y el paso 4 se introduce otro usuario, recupera ese mismo registro y lo elimina, o lo modifica antes de que acabe el otro usuario?

Cuando el primer usuario intente hacer un UPDATE del registro le dará un error porque ese registro ya no existe, o si ha sido modificado por el segundo usuario, el primero se cargará los cambios del segundo.

El gestor de base de datos es MySQL. MySQL tiene recursos para gestionar estas situaciones, en concreto las transacciones. Pero hay un problema desde php: que no se puede mantener una conexión única a la base de datos en todo el proceso descrito, desde el paso 1 al paso 4, y en consecuencia tampoco se puede mantener una transacción.

La soluciones que implementan semáforos, aparte de ser intrusivas, no son eficaces porque los semáforos también son afectados por la concurrencia y, además, si el usuario no concluye un proceso de edición los semáforos se quedan bloqueados.

Y la pregunta del millón es ¿cómo resuelven los programadores php experimentados este problema?

Gracias por la atención y un saludo.

--
Agustín Sardón
  #2 (permalink)  
Antiguo 04/10/2014, 12:47
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: bloque de registro desde php

Cita:
Y la pregunta del millón es ¿cómo resuelven los programadores php experimentados este problema?
Yo no lo resuelvo. Ni siquiera lo considero un problema.

En las tablas guardo un campo datetime de control con el atributo de mysql ON UPDATE CURRENT TIMESTAMP y valor por defacto CURRENT_TIMESTAMP. dicho campo lo guardo oculto en el formulario que muestro al usuario.

Cuando el formulario viene para editarse verifico si esa fecha corresponde con la de la base de datos, si es diferente es que alguien metio mano en el medio, no piso los datos, le pregunto al usuario que es lo que quiere hacer y que el asuma la responsabilidad.

Recuerda que los datos son del usuario no del sistema, y por lo tanto es el usuario el que debe hacerse cargo explicitamente de cada alteración de estos.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #3 (permalink)  
Antiguo 04/10/2014, 13:32
 
Fecha de Ingreso: octubre-2014
Ubicación: Bilbao
Mensajes: 14
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: bloque de registro desde php

Cita:
le pregunto al usuario que es lo que quiere hacer y que el asuma la responsabilidad.
¡Qué mal le tratamos al usuario!

Cita:
Recuerda que los datos son del usuario no del sistema, y por lo tanto es el usuario el que debe hacerse cargo explicitamente de cada alteración de estos.
Sí, pero si hay dos alteraciones de dos usuarios distintos que se solapan y cada uno modifica un dato diferente del mismo registro, las dos alteraciones deberían ser compatibles y, en tu sistema, no lo son; una de las dos, decida lo que decida el usuario no tendrá efecto. Y además no has considerado la posibilidad de que se haya el eliminado el registro por otro usuario cuando el primero quiera guardar los cambios. Lo del timestamp no te vale en ese caso.

Lo que planteas es una salida cómoda para el programador e incómoda para el usuario. No creo que eso pasara un examen de "usabilidad".

Gracias.
--
Agustín
  #4 (permalink)  
Antiguo 04/10/2014, 15:58
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: bloque de registro desde php

Cita:
si hay dos alteraciones de dos usuarios distintos que se solapan y cada uno modifica un dato diferente del mismo registro, las dos alteraciones deberían ser compatibles y, en tu sistema, no lo son; una de las dos, decida lo que decida el usuario no tendrá efecto.
No se que es lo que te estarás imaginando pero todas las alteraciones son compatibles, y ¿si lo que deside el usuario no tiene efecto, para que lo deside? eso es una afirmacion inconsistente.
Considera la tabla productos(codigo, nombre, costo, stock, precio)
Viene el usuario A y abre el producto 1 para editar, ve que el stock figura en 50 y que el precio de venta es $100, deside cambiar el precio de venta a $110.
Mientras eso ocurre, el usuario B realiza un venta de 49 unidades del producto 1.
Cuando el usuario A va a guardar, el sistema detecta que lo que el usuario A va a modificar no es lo que el cree que va a modificar, entonces le dice:
"AVISO: El producto que va a editar fue modificado por el usuario B a las d/m/Y h:i:s, estos son los datos actuales del registro:
Articulo 1
Descripcion
Costo $50
Stock 1
Precio $100
¿Aun asi desea aplicar la edicion?"

El usuario ve que solo queda 1 unidad en el stock y deside que en vez de aumentar el precio lo va a bajar para hacer una rebaja, cancela la modificacion, aplica la rebaja y guarda.
Tambien podria querer aplicar de todas formas el aumento, en ese caso confirmaría la edicion.

Como veras ambos usuarios modifican campos diferentes pero es importante que el usuario confirme la accion.

Tambien guardo en cada registro que usuario fue el ultimo en modificarlo y en los carteles se lo informo, de esta manera si hay una inconsistencia se comunican entre ellos y lo resuelven.
Cita:
Y además no has considerado la posibilidad de que se haya el eliminado el registro por otro usuario cuando el primero quiera guardar los cambios. Lo del timestamp no te vale en ese caso.
Es igual que el caso de que alguien lo halla editado, si al hacer el select no me devuelve nada, la fecha de edicion es null y, por definicion, null es distinto de cualquier valor, asi que sabria que el registro fue eliminado porque las fechas son diferentes y la fecha nueva es null.
Tan simple como eso.

Igualmente nunca hago bajas fisicas, todo son bajas logicas por lo que le pregunto al usuario si quiere restaurar el registro y aplicar los cambios o si quiere cancelar la operacion.

Cita:
Lo que planteas es una salida cómoda para el programador e incómoda para el usuario. No creo que eso pasara un examen de "usabilidad".
Te equivocas.

Lo que hago es la salida incomoda para el programador y para el sistema pero segura para el usuario. Seria mucho mas facil no preguntar nada y pisar los datos que revertir una transaccion, responder 3 solicitudes asincronicas y realizar 3 verificaciones.

Pasa todos los examenes de usabilidad, la primer regla basica de un sistema para que sea usable es que el usuario sepa lo que el sistema esta haciendo en todo momento.
Si no le avisas al usuario que lo que va a hacer no es lo que el cree que esta haciendo, le estas poniendo trampas, y cuando un usuario cae en una trampa del sistema comienza a perderle la confianza y nunca mas la recuperara o podria ser peor, comenzaría a pensar que el sistema es su enemigo.

Tu haz lo que quieras, he programado sistemas web para empresas multiusuario y jamas he tenido un problema usando esta tecnica, es mas, hasta les parece genial que les salga la advertencia para no meter la pata en las pocas ocasiones en que esto ocurre.

EDITO:
En aplicaciones de escritorio este tema es mas simple, porque la conexion a la base de datos es persistente y hay herramientas como SELECT FOR UPDATE que te permiten establecer bloqueos de escritura a nivel de fila, pero la web es asincronica, un usuario puede abrir para editar un registro a las 10 de la mañana y guardar la confirmacion a las 5 de la tarde, en ese lapso de tiempo, el sistema no tiene ni idea de que es lo que hizo el usuario, si completo el formulario, si cerro la pestaña, si se desconecto de la red, si se le prendio fuego la oficina, etc. En cambio en aplicaciones de escritorio el bloqueo sigue vivo mientras el programa se encuentre en la pantalla de edicion y todos los demas miembros de la red saben que hay alguien editando ese registro.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Última edición por NSD; 04/10/2014 a las 16:23
  #5 (permalink)  
Antiguo 05/10/2014, 06:09
 
Fecha de Ingreso: octubre-2014
Ubicación: Bilbao
Mensajes: 14
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: bloque de registro desde php

Cita:
EDITO:
En aplicaciones de escritorio este tema es mas simple, porque la conexion a la base de datos es persistente y hay herramientas como [URL="http://dev.mysql.com/doc/refman/5.0/es/innodb-locking-reads.html"]SELECT FOR UPDATE[/URL] que te permiten establecer bloqueos de escritura a nivel de fila, pero la web es asincronica, un usuario puede abrir para editar un registro a las 10 de la mañana y guardar la confirmacion a las 5 de la tarde, en ese lapso de tiempo, el sistema no tiene ni idea de que es lo que hizo el usuario, si completo el formulario, si cerro la pestaña, si se desconecto de la red, si se le prendio fuego la oficina, etc. En cambio en aplicaciones de escritorio el bloqueo sigue vivo mientras el programa se encuentre en la pantalla de edicion y todos los demas miembros de la red saben que hay alguien editando ese registro.
Ok. Ahora si me has convencido. Muchas gracias por la respuesta.
--
Agustín
  #6 (permalink)  
Antiguo 05/10/2014, 08:42
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: bloque de registro desde php

Cita:
Iniciado por asardon Ver Mensaje
Hola:
El gestor de base de datos es MySQL. MySQL tiene recursos para gestionar estas situaciones, en concreto las transacciones. Pero hay un problema desde php: que no se puede mantener una conexión única a la base de datos en todo el proceso descrito, desde el paso 1 al paso 4
Eso es un problema de PHP, o de concepto?
Eso no es un problema.Que tú le enseñes un formulario a un usuario, no significa que bloquees un registro, por si acaso ese usuario lo edita.Eso es así en cualquier lenguaje del mundo.

Aparte..
COLUMNAS : id_blocker , blocked_on
Hecho.
Cita:
En aplicaciones de escritorio este tema es mas simple, porque la conexion a la base de datos es persistente y hay herramientas como SELECT FOR UPDATE que te permiten establecer bloqueos de escritura a nivel de fila, pero la web es asincronica, un usuario puede abrir para editar un registro a las 10 de la mañana y guardar la confirmacion a las 5 de la tarde
Cita:
En cambio en aplicaciones de escritorio el bloqueo sigue vivo mientras el programa se encuentre en la pantalla de edicion y todos los demas miembros de la red saben que hay alguien editando ese registro.
Por qué se presupone que por web, una persona abre para editar un registro a las 10 de la mañana, y guarda a las 5....Y eso es imposible que pase en una aplicación de escritorio?Es que el comportamiento de la persona cambia si la aplicación es de escritorio o web?
Y si alguien tiene una modificación urgente que hacer?Es más feliz, y piensa que el sistema está mejor diseñado, porque al menos "sabe" que alguien tiene el registro bloqueado desde hace 7 horas?O le estás pasando al usuario un problema que tienes tú, como programador, al bloquear registros innecesariamente? Nota: los timeouts no son una solución.Son una tirita a poner en un diseño de aplicación que es malo.Y, por supuesto, igualmente podrías poner un timeout en la aplicación web.

.Y, para colmo, cuando llegan las cinco, le da a "cancelar" en el formulario, y ha mantenido el registro bloqueado durante 7 horas, para nada.

Bloquear un registro antes de que exista una acción concreta a realizar sobre él, es algo que está intrinsecamente mal diseñado.

Presunción incorrecta:
Cita:
las dos alteraciones deberían ser compatibles
Por? Si eso fuera así, no existirían problemas de concurrencia.
Una persona categoriza un objeto en un formulario :
MATERIAL : Oro. PRECIO 1

Diez minutos despues, se da cuenta de que se ha equivocado de material, y modifica:
MATERIAL : Plomo PRECIO 1

Pero alguien tambien se ha dado cuenta, y piensa que el problema es el precio, y modifica, a la vez:
MATERIAL : Oro. PRECIO 100

Como son dos modificaciones "compatibles", en la BD queda:
MATERIAL: Plomo PRECIO 100.

Si una modificación es compatible o no con otra, es algo que depende completamente de la naturaleza del dato.De quien es responsabilidad saber que el oro vale 100 o 1? De la aplicación?
Puede la aplicación inferir quien se ha equivocado de material, y quien se ha equivocado de precio?

Todo esto no es PHP.Son conceptos básicos de programación.

Última edición por dashtrash; 05/10/2014 a las 08:57
  #7 (permalink)  
Antiguo 05/10/2014, 09:19
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: bloque de registro desde php

estimado Asardon,
me parace que tu problema no es ni de php ni de mysql y ni escritrio ni web,
tenes una mania por encontrar el pelo al huevo o bien tuviste un profesor de esos lokillos por la seguridad y esas cosas.
Te pregunto: cómo pensás que funcionan los cajeros de los supermercados de las multinacionales que estan dale que dale facturando durante casi todo el dia y en ningun momento se pisan o tienen que bloquear los registros de la db?

es muy simple: ingenieria

antes de hacer algo tenes que pensarlo, y esta solucion existe de hace decadas.
de los años que llevo trabajando en sistemas esto nunca me pareció un problema, lo que tendrias que estudiar mas son PATRONES DE DISEÑO, ahi vas a encontrar la solucion a los problemas que otros estuvieron en tu misma situacion.

espero te haya servido
  #8 (permalink)  
Antiguo 05/10/2014, 10:33
 
Fecha de Ingreso: octubre-2014
Ubicación: Bilbao
Mensajes: 14
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: bloque de registro desde php

Cita:
Eso es un problema de PHP, o de concepto?
Un error de concepto. Ya me ha quedado claro.

Cita:
Por qué se presupone que por web, una persona abre para editar un registro a las 10 de la mañana, y guarda a las 5....Y eso es imposible que pase en una aplicación de escritorio?
Eso puede pasar tanto en una aplicación web como de escritorio. La diferencia está en que en web las conexiones no son persistentes como en una aplicación de escritorio y una transacción que leyera el registro con bloqueo no tendría sentido porque se cerraria en el momento que se enviara la respuesta al cliente.

Cita:
Y si alguien tiene una modificación urgente que hacer?Es más feliz, y piensa que el sistema está mejor diseñado, porque al menos "sabe" que alguien tiene el registro bloqueado desde hace 7 horas?
Eso a mi me ha ocurrido como usuario, tanto con programas comerciales como no comerciales. Y por supuesto que me encontraba un registro bloqueado durante horas si el que lo estaba editando se había ido a tomar café o estaba de palique con la amiga o el amigo de turno. Hablo de aplicaciones cliente servidor pero en escritorio, no en web.

Código:
Y, para colmo, cuando llegan las cinco, le da a "cancelar" en el formulario, y ha mantenido el registro bloqueado durante 7 horas, para nada.
Así es. Lo he sufrido como usuario. Con sistemas de contabilidad en COBOL, después en ORACLE y después en SAMP.

Cita:
Bloquear un registro antes de que exista una acción concreta a realizar sobre él, es algo que está intrinsecamente mal diseñado.
Desde el momento en que editas un registro ya estás haciendo una acción concreta sobre él. Editar un registro es hacer una lectura y una escritura. Lógicamente el bloqueo se ha de hacer en la lectura.

Cita:
Presunción incorrecta:

Por? Si eso fuera así, no existirían problemas de concurrencia.
Exacto. Y es lo que buscamos, que no haya problemas de concurrencia.
  #9 (permalink)  
Antiguo 05/10/2014, 10:37
 
Fecha de Ingreso: octubre-2014
Ubicación: Bilbao
Mensajes: 14
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: bloque de registro desde php

Cita:
antes de hacer algo tenes que pensarlo, y esta solucion existe de hace decadas.
¿Y es?

Cita:
espero te haya servido
No mucho. Me ha servido más la primera aportación al hilo. Pero gracias por los consejos.
  #10 (permalink)  
Antiguo 05/10/2014, 11:16
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: bloque de registro desde php

Cita:
Iniciado por asardon Ver Mensaje
Eso a mi me ha ocurrido como usuario, tanto con programas comerciales como no comerciales. Y por supuesto que me encontraba un registro bloqueado durante horas si el que lo estaba editando se había ido a tomar café o estaba de palique con la amiga o el amigo de turno. Hablo de aplicaciones cliente servidor pero en escritorio, no en web.
No hablas de aplicación de escritorio.Hablas de un sitio donde , como la gente se ve, se sabe lo que pasa.Lo cual no tiene nada que ver con la aplicación.
Una aplicación de escritorio puede ser distribuida.Ya no hay posibilidad de saber qué pasa.
Cita:
Iniciado por asardon Ver Mensaje
Desde el momento en que editas un registro ya estás haciendo una acción concreta sobre él. Editar un registro es hacer una lectura y una escritura. Lógicamente el bloqueo se ha de hacer en la lectura.
No.Para nada.Estás hablando desde el punto de vista de un usuario.Editar un registro es modificarlo.No tiene nada que ver con mostrar un formulario.

Cita:
Iniciado por asardon Ver Mensaje
Exacto. Y es lo que buscamos, que no haya problemas de concurrencia.
Y eso es imposible, ya que no existe lo que llamas "cambios compatibles".Hay que gestionarlo en cada caso.
  #11 (permalink)  
Antiguo 05/10/2014, 11:38
 
Fecha de Ingreso: octubre-2014
Ubicación: Bilbao
Mensajes: 14
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: bloque de registro desde php

Cita:
No.Para nada.Estás hablando desde el punto de vista de un usuario.Editar un registro es modificarlo.No tiene nada que ver con mostrar un formulario.
¿Ah no? ¿Para modificar un registro no tienes primero que leerlo? Y de las cuatro operaciones que se pueden hacer sobre un registro (CRUD), la creación y la modificación no necesitan de un formulario? ¡Ay, señor!
  #12 (permalink)  
Antiguo 05/10/2014, 14:22
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: bloque de registro desde php

Cita:
Iniciado por asardon Ver Mensaje
¿Y es? PATRONES DE DISEÑO



No mucho. Me ha servido más la primera aportación al hilo. Pero gracias por los consejos.
  #13 (permalink)  
Antiguo 05/10/2014, 19:21
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: bloque de registro desde php

Cita:
Y si alguien tiene una modificación urgente que hacer?Es más feliz, y piensa que el sistema está mejor diseñado, porque al menos "sabe" que alguien tiene el registro bloqueado desde hace 7 horas?
No es mas feliz ni piensa nada del sistema, lo único que piensa es "¿Quien es el **** que tiene abierto este registro que quiero editar? Le voy a agarrar de los pelos para que cierre ya mismo la pantalla." si el sistema esta bien diseñado, le proporcionara instantáneamente ese dato.

Cita:
Es que el comportamiento de la persona cambia si la aplicación es de escritorio o web?
No. Lo que cambia es la plataforma y sus características, si es de escritorio o web justamente, valga la redundancia.

Cita:
Bloquear un registro antes de que exista una acción concreta a realizar sobre él, es algo que está intrínsecamente mal diseñado.
No necesariamente, estamos de acuerdo en que no es la mejor opción, pero es la mas simple y la mas rápida, justamente por eso todas las bases de datos medianamente serias tienen herramientas nativas para aplicar esta solución.

Cita:
Una persona categoriza un objeto en un formulario :
MATERIAL : Oro. PRECIO 1

Diez minutos despues, se da cuenta de que se ha equivocado de material, y modifica:
MATERIAL : Plomo PRECIO 1

Pero alguien tambien se ha dado cuenta, y piensa que el problema es el precio, y modifica, a la vez:
MATERIAL : Oro. PRECIO 100

Como son dos modificaciones "compatibles", en la BD queda:
MATERIAL: Plomo PRECIO 100.

Si una modificación es compatible o no con otra, es algo que depende completamente de la naturaleza del dato.De quien es responsabilidad saber que el oro vale 100 o 1? De la aplicación?
Puede la aplicación inferir quien se ha equivocado de material, y quien se ha equivocado de precio?
Si eso es posible que ocurra, entonces hay un error de diseño de la aplicación y si, la responsable de dicho error es la aplicación, una aplicación que permita que ocurra tal escenario tiene la culpa de que los materiales tengan mal los precios y el programador es responsable legal de las perdidas/ganancias económicas que dichos cambios puedan producir hasta que se corrija el error.
En caso de juicio, un perito informático culparia al desarrollador en vez de al usuario.

La alternativa que yo uso y que ya explique previamente, cuando el usuario se da cuenta del error y pasa a cambiar el nombre del materia por "plomo" le saltaría un cartel diciendo algo asi:
"El metal que intenta editar ha sido modificado por el usuario B a las d/m/Y H:i:s y actualmente tiene estos datos:
Nombre Oro
Precio 100
¿Desea cambiar el nombre a "plomo" de todas formas?"

De esta forma, el usuario explicitamente se hace cargo de que el plomo vale $100 y es el responsable, no el sistema.
Cuando esto ocurre, el usuario suele amar al sistema por advertirle del cambio y evitar que meta la pata.

Nadie borra un registro cuando un usuario apreta el boton de eliminar, siempre se le pide que confirme la accion, ¿Porque? por que no se quiere que el usuario cometa accidentalmente un error, de igual forma un usuario no deberia poder editar un registro sin tener certeza exacta de cuales son los datos que esta modificando, por eso cuando otro cambia los datos hay que preguntarle si realmente quiere pisar los nuevos datos ya que el no sabe que alguien lo modifico.

EDITO: Poner un settimeout es como bien dices una chapuza, ya que tendrías al sistema verificando constantemente de forma totalmente innecesaria, el sistema debe verificar una única vez cuando se confirma la acción, no cada x segundos.

Cita:
¿Ah no? ¿Para modificar un registro no tienes primero que leerlo? Y de las cuatro operaciones que se pueden hacer sobre un registro (CRUD), la creación y la modificación no necesitan de un formulario? ¡Ay, señor!
A lo que @dashtrash creo que se refiere (corregidme si te malinterpreto) es a que en la web (que es la plataforma que usamos, lo de las aplicaciones de escritorio es meramente anecdotico aqui) cuando un formulario viene para editar, no haces una lectura con bloqueos ni nada de eso, simplemente editas el campo y en ese momento, te da igual si el usuario esta viendo 1, 2, 3, 4 o ningun formulario, solo tienes un conjunto de datos y una accion para aplicarles.

Cita:
¿Y es? PATRONES DE DISEÑO
¿Como eliminar las dependencias entre dos clases? Patrones de diseño
¿Como hacer que la web cargue los contenidos a medida que los usa? Patrones de diseño
¿Como evitar que un objeto cree instancias de otro? Patrones de diseño
¿Como hacer que una red de computadoras siga funcionando si se desconecta una? Patrones de diseño
Y podria seguir asi haciendo preguntas que no guardan relacion con este tema ni entre ellas culla respuesta es la misma "Patrones de diseño", por supuesto que no el mismo patron para todas, pero la respuesta es generica.

¿Tu que patrón/es en particular usarías en este caso?
Esa seria una respuesta interesante de leer.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Última edición por NSD; 07/10/2014 a las 14:27

Etiquetas: formulario, mysql, registro, select, tabla
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 00:31.