39 DELETE PRODUCTOS desde el FORMULARIO del Sistema de Ventas con (PHP y MySql)FullStack

Duración: 12 min
Módulo: 📦 Gestión de Productos y Categorías Lección 14 de 15

Descripción

Lección 39: Eliminación de Productos (Acción DELETE) 🗑️

Esta lección finaliza el ciclo CRUD (Crear, Leer, Actualizar, Eliminar) del módulo de productos implementando la acción "Eliminar" (Delete) para gestionar la baja lógica de un producto.

1. ⚙️ Configuración y Envío de Parámetros

Se inicia el proceso configurando el enlace de eliminación en la tabla principal y creando el controlador:

  • Enlace de Eliminación: En el archivo index.php, el enlace de la acción "Eliminar" se configura para enviar el ID del producto a un nuevo controlador llamado delete.php a través del método GET en la URL.
  • Creación del Controlador: Se crea el archivo almacen/delete.php, que será el encargado de recibir el ID y ejecutar la lógica de eliminación.
  • Recepción del ID: Dentro del controlador delete.php, se utiliza la superglobal $_GET para recuperar el id_producto enviado por la URL.

2. 📝 Lógica de Eliminación (Baja Lógica)

En los sistemas de gestión, es común realizar una baja lógica en lugar de una eliminación física del registro, lo que se conoce como soft delete.

  • Baja Lógica: Para mantener la integridad de los datos históricos (como registros de ventas asociados a ese producto), en lugar de usar la sentencia DELETE FROM, se utiliza la sentencia UPDATE para modificar el estado del registro.
    • Se asume que la tabla almacen tiene un campo llamado estatus o similar (aunque no se muestra en detalle, la lógica aplica este concepto).
  • Sentencia SQL: La consulta UPDATE se construye para cambiar un campo que indica que el producto ha sido eliminado o desactivado, usando la condición WHERE para afectar solo al id_producto recibido.
    • Ejemplo de Sentencia: UPDATE almacen SET estatus = 0 WHERE id_producto = ? (cambiando estatus a 0 para indicar "eliminado").
  • Parámetros: Se pasan el parámetro del id_producto y una variable para registrar la fecha y hora de eliminación (fecha_hora_eliminacion).

3. ✅ Ejecución y Retroalimentación

Una vez construida la consulta, se ejecuta y se proporciona retroalimentación al usuario:

  • Ejecución: Se ejecuta la consulta preparada.
  • Mensajes: En caso de éxito, se muestra un mensaje de confirmación ("Se eliminó el producto de la manera correcta") y se redirige a la vista principal (almacen/index.php). Si falla, se proporciona un mensaje de error y se redirige a la misma vista.

4. 🖼️ Gestión de la Imagen (Eliminación Física Opcional)

Aunque la eliminación del registro es lógica (solo cambia el estatus en la base de datos), la imagen asociada puede necesitar ser eliminada físicamente del servidor para ahorrar espacio.

  • Eliminación de Archivo: Se utiliza la función unlink() de PHP, la cual se encarga de eliminar un archivo del sistema de archivos del servidor, basándose en la ruta del archivo.
    • Ruta de Archivo: Primero, se requiere una consulta SELECT para obtener el nombre de la imagen actual del producto a eliminar.
    • Luego, se construye la ruta absoluta de la imagen en el servidor (Ej: ../almacen/img/productos/nombre_imagen.jpg).
    • Finalmente, la función unlink() se ejecuta con esta ruta para borrar el archivo físico.
  • Nota: Esta eliminación de archivo es opcional y no siempre se realiza, dependiendo de si el sistema necesita mantener los archivos para una posible reactivación del producto o por motivos de backup. El video recomienda hacer ambas (baja lógica y eliminación física del archivo).

Con esta lección, las cuatro acciones principales de gestión de productos están completas.