34 CONTROLLER CREATE PRODUCTOS desde el FORMULARIO del Sistema de Ventas con (PHP y MySql)FullStack

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

Descripción

Lección 34: Lógica del Controlador para el Registro de Productos (CREATE) 💾

Esta lección se enfoca en el desarrollo del controlador create.php en el lado del servidor, encargado de recibir todos los datos del formulario de productos, manejar la información compleja (como los campos deshabilitados) y ejecutar la consulta INSERT en la base de datos MySQL.

1. 💅 Mejora de la Experiencia de Usuario (UX)

Antes de la lógica, se realiza un ajuste de usabilidad en el formulario que responde al concepto de "iconos elegantes" y flujo de trabajo:

  • Acceso Directo a Categorías: Se añade un botón con un icono de suma (fa fa-plus o ) junto al campo de selección de Categoría [01:47].
  • Funcionalidad: Este botón redirecciona al usuario directamente a la vista de creación de Categorías. Esto permite al usuario registrar una nueva categoría sin salir del proceso de registro de productos, optimizando el flujo de trabajo [03:02].

2. 📝 Preparación y Recepción de Datos del Formulario

El primer paso crucial en la lógica es garantizar que todos los datos, especialmente los campos de solo lectura, lleguen al controlador:

  • Nombres de Campos: Se asigna un atributo name a todos los campos del formulario (<select>, <input>, <textarea>) para que sus valores puedan ser capturados por el método $_POST [07:12].
  • Manejo de Campos Deshabilitados: Los campos esenciales, como el Código de Producto y el ID de Usuario, están deshabilitados (disabled) para que el usuario no los modifique. Como los campos deshabilitados no se envían en el POST, se crea un input oculto (type="hidden") que contiene exactamente el mismo valor [04:42]. De esta manera, el valor correcto se envía al controlador sin ser visible o editable.
  • Recepción en el Controlador: En el archivo almacen/create.php, se definen y capturan todas las variables enviadas a través del método $_POST [09:19].

3. 🖥️ Lógica de Inserción y Pruebas

El controlador gestiona la inserción de los 13 campos del producto en la tabla almacen:

  • Consulta SQL INSERT: Se construye la consulta SQL para insertar los valores recibidos, incluyendo codigo, id_categoria, nombre, stock, precios, y la fecha y hora de creación (usando una variable de configuración) [10:44].
  • Ejecución y Feedback: Se ejecuta la consulta. En caso de éxito, el sistema muestra un mensaje de confirmación y redirige al listado de productos [12:40].
  • Resultado de la Prueba: La prueba de registro de un producto (ejemplo: "Audífonos") es exitosa:
    • Todos los datos de texto y los IDs relacionados se guardan correctamente en la tabla almacen de la base de datos [16:14].
    • El campo imagen guarda el nombre del archivo (ej. audifonos.jpg), pero el archivo en sí no se mueve al servidor, lo cual se identifica como un error a corregir [16:58].

⏭️ Próximos Pasos Identificados:

Se identifican dos tareas críticas para la siguiente lección:

  1. Transferencia de Archivos: Implementar la lógica de PHP para mover el archivo de imagen de la carpeta temporal a un directorio permanente en el proyecto ($_FILES handling) [17:07].
  2. Validación de Campos: Añadir la validación en el lado del servidor para evitar que el controlador registre información vacía o basura [17:33].