prepare("INSERT INTO usuarios (nombre, usuario, password, rol) VALUES (:nombre, :usuario, :password, 'cliente')"); \(stmt->execute(['nombre' =>\)nombre, 'usuario' => \(usuario, 'password' =>\)password]); $mensaje = "Cliente registrado correctamente."; $tipo_alerta = "exito"; } catch (PDOException $e) { $mensaje = "El nombre de usuario ya está registrado."; $tipo_alerta = "error"; } } } // 2. Lógica para Crear Categoría if (\(_SERVER['REQUEST_METHOD'] === 'POST' && isset(\)_POST['accion_categoria'])) { \(nombre_cat = trim(\)_POST['nombre_categoria']); if (!empty($nombre_cat)) { \(stmt =\)pdo->prepare("INSERT INTO categorias (nombre_categoria) VALUES (:nombre)"); \(stmt->execute(['nombre' =>\)nombre_cat]); $mensaje = "Categoría creada con éxito."; $tipo_alerta = "exito"; } } // 3. Lógica para Guardar Producto con Imagen if (\(_SERVER['REQUEST_METHOD'] === 'POST' && isset(\)_POST['accion_producto'])) { \(cat_id =\)_POST['categoria_id']; \(nombre_p = trim(\)_POST['nombre_producto']); \(desc_p = trim(\)_POST['descripcion']); $imagen_nombre = null; if (!empty($_FILES['imagen']['name'])) { $directorio = "uploads/"; if (!file_exists($directorio)) { mkdir($directorio, 0777, true); } \(ext = pathinfo(\)_FILES['imagen']['name'], PATHINFO_EXTENSION); \(imagen_nombre = uniqid('prod_') . '.' .\)ext; move_uploaded_file(\(_FILES['imagen']['tmp_name'],\)directorio . $imagen_nombre); } if (!empty(\(cat_id) && !empty(\)nombre_p)) { \(stmt =\)pdo->prepare("INSERT INTO productos (categoria_id, nombre_producto, descripcion, imagen) VALUES (:cat, :nombre, :desc, :img)"); \(stmt->execute(['cat' =>\)cat_id, 'nombre' => \(nombre_p, 'desc' =>\)desc_p, 'img' => $imagen_nombre]); $mensaje = "Producto publicado correctamente en el catálogo."; $tipo_alerta = "exito"; } } // Consultas de datos \(total_clientes =\)pdo->query("SELECT COUNT(*) FROM usuarios WHERE rol = 'cliente'")->fetchColumn(); \(total_productos =\)pdo->query("SELECT COUNT(*) FROM productos")->fetchColumn(); \(total_categorias =\)pdo->query("SELECT COUNT(*) FROM categorias")->fetchColumn(); \(clientes =\)pdo->query("SELECT * FROM usuarios WHERE rol = 'cliente' ORDER BY id DESC")->fetchAll(PDO::FETCH_ASSOC); \(categorias =\)pdo->query("SELECT * FROM categorias ORDER BY nombre_categoria ASC")->fetchAll(PDO::FETCH_ASSOC); \(productos =\)pdo->query("SELECT p.*, c.nombre_categoria FROM productos p JOIN categorias c ON p.categoria_id = c.id ORDER BY p.id DESC")->fetchAll(PDO::FETCH_ASSOC); ?>