isLoggedIn()) { redirectTo('login.php'); } $currentUser = $auth->getCurrentUser(); $db = Database::getInstance(); // Get selection ID from URL $selection_id = isset($_GET['id']) ? (int)$_GET['id'] : 0; if (!$selection_id) { redirectTo('projects.php'); } // Get selection details with project info $stmt = $db->prepare(" SELECT s.*, p.project_id, p.title as project_title, p.client_name FROM selections s JOIN projects p ON s.project_id = p.id WHERE s.id = ? AND p.created_by = ? "); $stmt->bind_param('ii', $selection_id, $_SESSION['user_id']); $stmt->execute(); $selection = $stmt->get_result()->fetch_assoc(); if (!$selection) { redirectTo('projects.php'); } // Get selection members count $members_count = $db->query("SELECT COUNT(*) as count FROM selection_members WHERE selection_id = $selection_id")->fetch_assoc()['count']; // Get selection members for display (paginated) - FIXED QUERY $page = isset($_GET['page']) ? max(1, (int)$_GET['page']) : 1; $per_page = 50; $offset = ($page - 1) * $per_page; $members_query = $db->query(" SELECT sm.*, pd.attribute_values FROM selection_members sm JOIN panel_data pd ON sm.panelist_id = pd.panelist_id WHERE sm.selection_id = $selection_id ORDER BY sm.id ASC LIMIT $per_page OFFSET $offset "); $members = []; if ($members_query) { while ($row = $members_query->fetch_assoc()) { $members[] = $row; } } $total_pages = ceil($members_count / $per_page); // Get attributes for display $attributes = $db->query("SELECT * FROM attributes ORDER BY name ASC"); // Handle messages $error = isset($_SESSION['error_message']) ? $_SESSION['error_message'] : ''; $success = isset($_SESSION['success_message']) ? $_SESSION['success_message'] : ''; // Clear messages after displaying unset($_SESSION['error_message'], $_SESSION['success_message']); ?>