setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Obtener el ID de la categoría seleccionada (si existe) y el término de búsqueda $categoriaSeleccionada = isset($_GET['categoria']) ? (int) $_GET['categoria'] : null; $searchTerm = isset($_GET['buscar']) ? '%' . $_GET['buscar'] . '%' : '%%'; // Consultar productos según la categoría seleccionada y términos de búsqueda $query = "SELECT p.id, p.nombre, p.descripcion, p.precio, p.stock, p.imagen, c.nombre AS categoria FROM productos p INNER JOIN categorias c ON p.id_categoria = c.id WHERE p.nombre LIKE :buscar"; if ($categoriaSeleccionada) { $query .= " AND c.id = :id_categoria"; } $stmtProductos = $conn->prepare($query); $stmtProductos->bindParam(':buscar', $searchTerm, PDO::PARAM_STR); if ($categoriaSeleccionada) { $stmtProductos->bindParam(':id_categoria', $categoriaSeleccionada, PDO::PARAM_INT); } $stmtProductos->execute(); $productos = $stmtProductos->fetchAll(PDO::FETCH_ASSOC); // Consultar categorías $stmtCategorias = $conn->prepare("SELECT id, nombre FROM categorias"); $stmtCategorias->execute(); $categorias = $stmtCategorias->fetchAll(PDO::FETCH_ASSOC); // Consultar ofertas $stmtOfertas = $conn->prepare("SELECT id, nombre, precio, imagen FROM productos WHERE oferta = 1 LIMIT 5"); $stmtOfertas->execute(); $ofertas = $stmtOfertas->fetchAll(PDO::FETCH_ASSOC); // Consultar los productos más vendidos $stmtProductosVendidos = $conn->prepare(" SELECT p.id, p.nombre, p.descripcion, p.precio, p.stock, p.imagen, c.nombre AS categoria FROM productos p INNER JOIN categorias c ON p.id_categoria = c.id INNER JOIN ( SELECT id, SUM(total) AS total_vendido FROM ventas GROUP BY id ORDER BY total_vendido DESC LIMIT 5 ) AS v ON p.id = v.id; "); $stmtProductosVendidos->execute(); $productosVendidos = $stmtProductosVendidos->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { echo "Error de conexión: " . $e->getMessage(); die(); } ?>
No hay ofertas disponibles en este momento.