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)
$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, pd.panelist_id
FROM selection_members sm
JOIN panel_data pd ON sm.panelist_id = pd.panelist_id
WHERE sm.selection_id = $selection_id
ORDER BY sm.created_at DESC
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'] : '';
if (isset($_SESSION['error_message'])) unset($_SESSION['error_message']);
if (isset($_SESSION['success_message'])) unset($_SESSION['success_message']);
?>
View Selection |
Total Members
Selected panelists
Target Size
Requested sample size
Completion Rate
0 ?
round(($members_count / $selection['sample_size']) * 100, 1) : 0;
echo $completion_rate; ?>%
Target achievement
No Members Found
This selection doesn't have any members yet.
1): ?>