22 Update en 3 tablas relacionadas en el curso de Sistema de gestión escolar(PHP y MySql)FullStack

Duración: 30 min
Módulo: 🏢 Módulo Personal Administrativo (CRUD Complejo) Lección 3 de 3

Descripción

💻 Lección 22: Actualización (Update) en Tres Tablas Relacionadas

El video https://youtu.be/jv3fEgzt0UU implementa la funcionalidad de Edición o Actualización (Update) para el personal administrativo, manteniendo la complejidad de tener que modificar datos de forma atómica y segura en tres tablas (usuarios, personas, y administrativos).

1. 📝 Preparación de la Vista Edit

El proceso comienza en la vista edit.php, que es una copia de la vista create.php, pero con la lógica necesaria para precargar los datos:

  • Recepción de Datos: Al igual que en la vista Show, se recibe el ID_administrativo por la URL, se consulta al controlador (datos_administrativos.php) y se recuperan todos los datos del registro [01:59].
  • Precarga de Campos: Se utiliza la variable de los datos recuperados ($administrativo) para rellenar el atributo value de cada campo del formulario.
  • Selección Automática del Rol: Se implementa una lógica condicional (if/else) dentro del select de roles para que el rol actual del administrativo aparezca automáticamente seleccionado [05:40].
  • Envío de IDs Ocultos: Para que el controlador de Update sepa qué registros actualizar en las tres tablas, se añaden tres campos ocultos (hidden) al formulario para enviar los IDs de las tablas relacionadas:
    1. ID_administrativo [10:01]
    2. ID_usuario [14:07]
    3. ID_persona [19:14]

2. 🔁 El Flujo de Actualización con Transacciones

El controlador (update.php) sigue la misma lógica de Transacciones de PDO (beginTransaction, commit, rollBack) utilizada en la creación, asegurando que si una de las tres sentencias UPDATE falla, se reviertan los cambios en todas las tablas [11:09].

  1. Actualizar usuarios:
    • Se actualizan el rol_ID, el email y la contraseña.
    • La contraseña se vuelve a hashear (encriptar) si se ha cambiado el número de Cédula de Identidad (CI), manteniendo la seguridad.
    • La sentencia usa el ID_usuario en la cláusula WHERE [13:28].
  2. Actualizar personas:
    • Se actualizan todos los datos personales (nombres, apellidos, CI, celular, dirección, etc.).
    • La sentencia usa el ID_persona en la cláusula WHERE [17:58].
  3. Actualizar administrativos:
    • En este ejemplo, dado que la tabla administrativos solo contiene el person_ID y la fecha de creación/actualización, la sentencia solo se enfoca en actualizar la fecha y hora de actualización para reflejar el cambio.
    • La sentencia usa el ID_administrativo en la cláusula WHERE [22:12].

Al finalizar el módulo, se verifica la actualización del listado de administrativos, confirmando que los cambios de rol, datos y contraseña se hayan aplicado correctamente en toda la base de datos [24:28].

🏆 Resumen del Módulo

Con la finalización de las funcionalidades de Crear (Create), Listar/Ver (Read/Show), y Actualizar (Update), el módulo de Gestión del Personal Administrativo está completo [28:37]. El siguiente paso en el curso será construir el módulo de Docentes, que tendrá un proceso de registro y actualización similar en múltiples tablas.