Ver Mensaje Individual
  #6 (permalink)  
Antiguo 27/11/2013, 06:23
Avatar de gnzsoloyo
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, 5 meses
Puntos: 2658
Respuesta: Existe la variable de sesion en Mysql?

Cita:
Mi problema es que voy pasando de pagina a pagina y recopilando datos del usuario, en cada una de ellas tengo un formulario, pero cuando me registra en cada uno de ellos con INSER INTO mysqul me crea una linea nueva y si lo hago con UPDATE no me deja en la segunda pagina, puesto que la única columna que tengo es la primera y es una columna auto-incrementable.
Me da la impresión que esto es mas un tema de diseño de la aplicación, más que un error de sesiones o de INSERT/UPDATE.
Entendamos que si tienes un aplicativo que recopila infornación a través de varias páginas o formularios, lo haces porque la gestion de toda la secuencia de formularios se debe considerar como una única gestión. Es es el caso del manejo de "canastas de compras", por ejemplo.
Pero este tipo de procesos no implica que se deban guardar en la base todas y cada una de las acciones de cada formulario (más alla de que pueda existir ul log de sesiones o tablas transaccionales intermedias), ya que lo que queda en base debe ser la gestión completa, y no pedazos de ella. Esto se hace habitualmente de ese modo porque de lo contrario la cancelación o perdida de sesiones antes de terminar la gestión dejaría muchos "datos basura" que habría que cancelar y depurar.
En este sentido lo mejos es ir almacenando los datos clave (esos que te sirven para determinar qué, cuanto y cómo de un producto, pero no su descripción), en el objeto de sesión, y solo cuando se confirma toda la gestión se envían a la base.
El sistema como lo estás haciendo está constantemente yendo a base para hacer inserciones y actualizaciones, lo que termina siendo ineficiente, y costoso a nivel de acceso a base. Máxime si además abrieras una conexión por cada insert/update. Eso genera más problemas de los que imaginas.
Resumiendo: Almacena en la sesión de PHP, y recién cuando la gestión termine, entonces manda a base.
Si el problema es que la sesión de PHP se pierde, lo que hay que resolver es por qué sucede eso, no parchar la cosa registrando en base todo como si fuera gestion final.

Finalmente: A mi entender, el inicio de la sesión no la debes poner en el proceso de envio a base, sino en el momento en que el usuario debe comenzar a reallizar las selecciones de lo que almacenará, ya que esa sesión será la que deba pasar de una a otra vista y formualarioo.
Los expertos dirán si estoy cerca de la idea.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 27/11/2013 a las 06:55