18 CRUD - UPDATE de USUARIOS del Sistema de Ventas con (PHPyMySql) FullStack

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

Descripci贸n

Lecci贸n 18: CRUD - Actualizaci贸n (UPDATE) de Usuarios 馃捑

Esta lecci贸n se dedica a implementar la funcionalidad de Actualizar (UPDATE) los datos de los usuarios, un paso crucial para completar las operaciones b谩sicas del CRUD (Crear, Leer, Actualizar y Eliminar) dentro del sistema de ventas.

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

La actualizaci贸n requiere una vista de formulario prellenada con la informaci贸n actual del usuario:

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

  • Enlace de Acci贸n: El bot贸n "Editar" en la tabla de usuarios se modifica para redirigir a update.php, enviando el ID del usuario a trav茅s de la URL (m茅todo GET), asegurando que se sepa qu茅 registro editar.
  • Dise帽o: Se adapta el formulario de creaci贸n (create.php), cambi谩ndolo a color verde (btn-success) para indicar una acci贸n de edici贸n y el bot贸n de env铆o a "Actualizar".
  • Recuperaci贸n de Datos: Un nuevo Controlador de Vista (update_usuario.php) recibe el ID y consulta la base de datos para obtener los datos. Estos se inyectan en los campos del formulario mediante el atributo value (value="<?php echo $nombres; ?>"), permitiendo la edici贸n.
  • Campo Oculto (ID): Se a帽ade un input de tipo oculto (type="hidden") dentro del formulario. Este campo es vital, ya que almacena y env铆a el ID del usuario al controlador final para saber a qui茅n aplicar la actualizaci贸n en la base de datos.

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

El controlador de actualizaci贸n maneja la recepci贸n de datos, la seguridad y la sentencia SQL.

b. Controlador de Ejecuci贸n (update.php en /controller)

EtapaDetalleFunci贸n Principal
1. Recepci贸n y Validaci贸nSe reciben los campos por POST, incluyendo el ID oculto. Se valida si las contrase帽as introducidas coinciden, y si es as铆, se aplica la funci贸n de hash a la nueva contrase帽a.Garantiza que solo las contrase帽as v谩lidas y encriptadas se env铆en.
2. Sentencia SQLSe construye la sentencia UPDATE de MySQL para modificar los campos (nombres, email, password y fecha_hora_update).Modifica los datos del registro.
3. Condici贸n WHERE (隆Clave!)Se utiliza la cl谩usula WHERE id_usuario = :id_usuario en la sentencia.Esto es crucial: evita que se actualicen todos los registros de la tabla, aplicando los cambios solo al usuario cuyo ID fue enviado.
4. Gesti贸n de 脡xito/ErrorTras la ejecuci贸n, se env铆a una notificaci贸n SweetAlert de 茅xito (icon: success) o error (icon: error). El sistema de mensajes se centraliza para inyectar din谩micamente el tipo de icono, haciendo el c贸digo m谩s limpio.Informa al usuario del resultado y redirige al listado (index.php).

Con esto, el sistema ahora puede actualizar correctamente los registros de usuario, y el campo fecha_hora_update en la base de datos se registra autom谩ticamente con el momento de la modificaci贸n.