50 Cargar DATOS DE PRODUCTO con TABLAS RELACIONADAS del Sistema de Ventas con (PHP y MySql)FullStack

Duración: 13 min
Módulo: 💰 Implementación y Registro del Módulo de Compras Lección 2 de 17

Descripción

Lección 50: Carga de Datos de Producto con Tablas Relacionadas (Módulo Compras) 🔗📦

Este video se enfoca en resolver el problema de mostrar solo IDs numéricos en la tabla de listado de compras (vistas/compras/index.php). El objetivo es reemplazar esos IDs por la información legible (nombres, códigos, etc.) del Producto y, en futuras lecciones, de los Proveedores y Usuarios, utilizando consultas SQL con INNER JOIN.

1. ⚙️ Relacionamiento de Tablas (Controlador)

La mejora comienza en el controlador listado_compras.php [00:52]:

  • Alias para la Tabla tb_compras: Se asigna el alias c a la tabla tb_compras para simplificar la consulta: SELECT * FROM tb_compras AS c.
  • Uso de INNER JOIN: Se relaciona la tabla tb_compras con la tabla tb_almacen (que contiene los productos) [01:55]:

    SQL

    INNER JOIN tb_almacen AS pro ON c.id_producto = pro.id_producto

    • Esto asegura que solo se traigan las compras que tienen un producto registrado.

2. 📝 Selección de Campos de Producto

Para evitar ambigüedades, en lugar de SELECT *, se seleccionan explícitamente los campos necesarios de la tabla tb_almacen (usando el alias pro), y se les asigna un nuevo alias para usarlos fácilmente en la vista [03:16]:

  • pro.codigo como codigo
  • pro.nombre como nombre_producto
  • pro.descripcion como descripcion
  • pro.stock como stock_producto
  • Y otros campos del producto como stock_minimo, stock_maximo, precio_venta, e imagen [06:05].

3. 🖼️ Actualización de la Vista (Tabla y Modal)

En la vista index.php, se sustituye el id_producto por el campo codigo y nombre_producto [04:15]. Para manejar la gran cantidad de datos de producto sin sobrecargar la tabla, se implementa una solución con un Modal de Visualización:

  • Botón en la Fila: La columna "Producto" ahora contiene un botón que tiene como texto el nombre del producto (nombre_producto) [09:50].
  • Modal de Detalles: Este botón activa un nuevo modal (modal-producto-IDCompra) que se genera de forma única para cada fila de la tabla [10:28].
  • Propósito del Modal: El modal se titula "Datos del Producto" y su única función es mostrar toda la información detallada (código, descripción, stocks, precios) del producto asociado a esa compra, sin permitir edición (a diferencia del modal de Update) [12:35].

4. Próxima Lección

La siguiente fase se centrará en aplicar la misma técnica de INNER JOIN para relacionar la tabla de Compras con la de Proveedores y Usuarios, y así mostrar sus nombres legibles en la tabla de listado [15:32].