prepare("SELECT role FROM users WHERE id = ?"); $stmt->execute([$userId]); $user = $stmt->fetch(PDO::FETCH_ASSOC); if (!$user || $user['role'] !== 'admin') { header("Location: /dashboard.php"); exit; } // Admin-specific actions if ($_SERVER['REQUEST_METHOD'] === 'POST') { // Edit Subscription if (isset($_POST['edit_subscription'])) { $subscription_id = $_POST['subscription_id']; $name = $_POST['name']; $cost = $_POST['cost']; $renewal_date = $_POST['renewal_date']; $category = $_POST['category']; $frequency = $_POST['frequency']; $stmt = $db->prepare("UPDATE subscriptions SET name = ?, cost = ?, renewal_date = ?, category = ?, frequency = ? WHERE id = ?"); $stmt->execute([$name, $cost, $renewal_date, $category, $frequency, $subscription_id]); } // Delete Subscription elseif (isset($_POST['delete_subscription'])) { $subscription_id = $_POST['subscription_id']; $stmt = $db->prepare("DELETE FROM subscriptions WHERE id = ?"); $stmt->execute([$subscription_id]); } // TODO: Add user management actions (e.g., edit, delete user, reset password) header("Location: admin.php"); exit; } // Fetch aggregated metrics $totalUsers = $db->query("SELECT COUNT(*) FROM users")->fetchColumn(); $totalSubscriptions = $db->query("SELECT COUNT(*) FROM subscriptions")->fetchColumn(); $totalValue = $db->query("SELECT SUM(cost) FROM subscriptions")->fetchColumn(); // Fetch all users and subscriptions $users = $db->query("SELECT id, name, email, role, is_active, created_at FROM users ORDER BY created_at DESC")->fetchAll(PDO::FETCH_ASSOC); $subscriptions = $db->query("SELECT s.*, u.name as user_name FROM subscriptions s JOIN users u ON s.user_id = u.id ORDER BY s.renewal_date ASC")->fetchAll(PDO::FETCH_ASSOC); ?>
$
| Name | Role | Active | Joined | Actions | |
|---|---|---|---|---|---|
| Reset Password |
| User | Subscription | Cost | Renewal Date | Actions |
|---|---|---|---|---|
| $ |