Ver Mensaje Individual
  #7 (permalink)  
Antiguo 26/03/2004, 09:29
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Sobre el tema de los checkbox para que el usuario diga si va a ejecutar todo el formulario de una vez o en várias páginas .. eso lo decides tu si lo deseas .. pero, el hecho de saber tu sistema cual formulario es el que le corresponde a ese usuario en ese proceso deber de hacerlo "automático" ..

Para eso, puedes usar un campo "contador" extra en tu BD que indique en que formulario está y se actualize con cada formulario que se rellena hasta llegar al último de una série de X formularios.

Para obtener el ID de tu primer fomulario que es donde has creado el registro para esa tabla .. usa: (es la versión SQL equivalente a mysql_last_id() de PHP .. )

1er formulario (proceso_form_1.php)

Haces el INSERT con los datos que tengas de ese formulario (ojo con los campos con valor requerido que te dará problemas Msyql ..). Define el campo extra que va a controlar el contador de formularios con valor "1" (y valor predefinido 0 cuando definas el campo en cuestión)

seguidamente obtienes el ID que ha generado automáticamente el campo que uses como "autoincremental" ...

Código PHP:
  // obtener ID 
    
$sql_id_nose="SELECT LAST_INSERT_ID() FROM clientes";
    
$id_nose=mysql_result($sql_id_nose,0); 
ahí en $id_nose (cambia las varibles/nombre tabla como gustes) obtendrás tu ID .. el cual usaras para los subsiguientes formularios para hacer el Update condicional bajo ese ID.

Esa variable "$id_nose" sería altamente recomendable propagarla en una variable de sesión tipo:

$_SESSION['id_nose']=$id_nose;

de aquí .. saltas automáticamente a tu formulario 2

Por ejemplo:
Código PHP:
header ("location: formulario_2.php"); 
En el formulario_2.php .. valida esa variable de sesión (id_nose) como para determinar que se saltó el proceso de la secuencia de formularios ...

Código PHP:
<?
session_start
()
if (empty(
$_SESSION['id_nose'])){
die (
"Se saltó la secuencia . .no dería estar aquí");
}

// etc formulario ..
El procesar_form_2.php y subsiguientes .. tendrás que validar igualmente esa variable de sesión y en lugar de INSERT ahora harás sólo UPDATES a los campos que recogas en estos formularios .. El campo extra de control (el contador .. de formularios) lo incrementas en una unidad tipo

Código PHP:
$sql="UPDATE tabla SET contador=contador+1,otroscampos='$valores' .... WHERE id_nose='".$_SESSION['id_nose']."'"
Fijate que se usa la variable de sesión para montar el condicional para el UPDATE (sino actualizaría toda esa tabla).

Eso mas o menos sería el proceso de creación de un registro completo con X formularios por el camino ...

Si el Usuario se queda a medias y tiene que volver a rellenar el formulario .. tras tu login que lo autentificas haces una consulta SQL por el campo "contador" para saber donde se quedó y en consecuencia redireccionar hacia el formulario que corresponda.

Para esto .. no sé si en tu montón de campos de esa tabla ya incluyes el Usuario autentificado que está operando el formulario .. pero si no lo tienes en cuenta debes incluirlo (en el INSERT primero por lo menos) para dejar constancia de quien estaba trabajando ese formulario de X partes.

Así .. las consultas serían condicionales par el momento que tengas que ofrecer el formulario que el Usuario X se quedó a medias .. tipo:

..... WHERE usuario=$usuario_login AND contador > 0 AND contador < X

Es decir .. "ver sólo los registros de ese usuario que los tenga a medias" .. siendo X el nº total de formularios del proceso (partes).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.