23 CRUD - UPDATE ROLES en el Sistema de Ventas con (PHPyMySql) FullStack

Duraci贸n: 12 min
M贸dulo: 馃懁 CRUD de Usuarios y Roles (Seguridad L贸gica) Lecci贸n 15 de 17

Descripci贸n

Lecci贸n 23: CRUD - Actualizaci贸n (UPDATE) de Roles 馃攧

Esta lecci贸n aborda la implementaci贸n completa de la funcionalidad de Actualizar (UPDATE) para el m贸dulo de Roles, permitiendo modificar el nombre de los roles existentes en la base de datos.

1. 鈿欙笍 Preparaci贸n de la Interfaz y Recuperaci贸n de Datos

La acci贸n de editar roles requiere dos pasos principales: mostrar la informaci贸n actual en un formulario y enviar el identificador para la consulta.

a. Vista de Edici贸n (update.php)

  • Enlace de Acci贸n: El bot贸n "Editar" en el listado de roles (index.php) se habilita para redirigir a update.php, enviando el ID del Rol (id_rol) a trav茅s de la URL (m茅todo GET) [00:44].
  • Dise帽o: La vista se adapta del formulario de creaci贸n (create.php), cambiando el t铆tulo a "Edici贸n del Rol" y usando el color verde (btn-success) para distinguir la acci贸n de edici贸n [04:42].
  • Campo Oculto (ID): Se a帽ade un input de tipo oculto (type="hidden") al formulario para capturar y enviar el id_rol del registro que se est谩 modificando al controlador final [06:53].

b. Controlador de Vista (update_roles.php)

  1. Recepci贸n del ID: El controlador recibe el id_rol desde la URL [02:26].
  2. Consulta: Ejecuta una sentencia SELECT que filtra la tabla roles usando el ID recibido: SELECT * FROM roles WHERE id_rol = :id_rol [03:07].
  3. Prellenado del Formulario: El nombre del rol recuperado ($rol) se inyecta en el campo de input del formulario usando el atributo value [04:15].

2. 馃捑 L贸gica y Ejecuci贸n del UPDATE

Una vez que el usuario modifica el nombre en la vista, la informaci贸n se env铆a al controlador de ejecuci贸n.

a. Controlador de Ejecuci贸n (update.php en /controllers/roles)

  1. Recepci贸n de Par谩metros: El controlador recibe dos par谩metros por el m茅todo POST [07:09]:
    • El nuevo nombre del rol ($rol).
    • El ID del rol ($id_rol) proveniente del campo oculto.
  2. Sentencia SQL (UPDATE): Se construye y ejecuta la sentencia para modificar el registro:
    • Se actualiza el campo nombre_rol con el nuevo valor.
    • Se actualiza el campo fecha_hora_update a la hora actual.
    • Cl谩usula WHERE: Se utiliza la condici贸n WHERE id_rol = :id_rol para asegurar que solo se modifique el registro seleccionado [08:39].
  3. Notificaci贸n y Redirecci贸n: Si la ejecuci贸n es exitosa, se utiliza SweetAlert con el mensaje "Se actualiz贸 el Rol de la manera correcta" y se redirige al listado de roles (index.php) [09:43].

3. 馃洃 Conclusi贸n del M贸dulo Roles

Con la implementaci贸n de la funci贸n UPDATE, se completan las operaciones necesarias del CRUD para este m贸dulo:

  • CREATE (Crear)
  • READ (Leer)
  • UPDATE (Actualizar)
  • DELETE (Eliminar): Esta acci贸n no se implementa en el c贸digo, ya que la restricci贸n de clave for谩nea configurada en la lecci贸n 21 ya impide la eliminaci贸n de un rol que est茅 siendo utilizado por un usuario [11:24].

El pr贸ximo paso ser谩 integrar el nombre del rol en la vista de listado de Usuarios para que aparezca junto a cada registro [11:54].