prepare("SELECT COUNT(*) FROM users u JOIN election_assignments ea ON u.id = ea.user_id WHERE ea.election_id = ? AND ea.role_in_election = 'Voter'"); $totalVoters->execute([$electionId]); $totalVoters = $totalVoters->fetchColumn(); $votedCount = $pdo->prepare("SELECT COUNT(DISTINCT voter_id) FROM votes WHERE election_id = ?"); $votedCount->execute([$electionId]); $votedCount = $votedCount->fetchColumn(); $notVotedCount = $totalVoters - $votedCount; // Distribution (Filtered by Election) $trackStats = $pdo->prepare("SELECT u.track, COUNT(*) as count FROM users u JOIN election_assignments ea ON u.id = ea.user_id WHERE ea.election_id = ? AND ea.role_in_election = 'Voter' GROUP BY u.track ORDER BY u.track"); $trackStats->execute([$electionId]); $trackStats = $trackStats->fetchAll(PDO::FETCH_ASSOC); $gradeStats = $pdo->prepare("SELECT u.grade_level, COUNT(*) as count FROM users u JOIN election_assignments ea ON u.id = ea.user_id WHERE ea.election_id = ? AND ea.role_in_election = 'Voter' GROUP BY u.grade_level ORDER BY u.grade_level"); $gradeStats->execute([$electionId]); $gradeStats = $gradeStats->fetchAll(PDO::FETCH_ASSOC); // Filters $search = $_GET['search'] ?? ''; $filterTrack = $_GET['track'] ?? 'All Tracks'; $filterGrade = $_GET['grade'] ?? 'All Grades'; // Query Construction $query = "SELECT u.*, (SELECT COUNT(*) FROM votes v WHERE v.voter_id = u.id AND v.election_id = ?) as has_voted FROM users u JOIN election_assignments ea ON u.id = ea.user_id WHERE ea.election_id = ? AND ea.role_in_election = 'Voter'"; $params = [$electionId, $electionId]; if ($search) { $query .= " AND (u.email LIKE ? OR u.name LIKE ? OR u.student_id LIKE ?)"; $params[] = "%$search%"; $params[] = "%$search%"; $params[] = "%$search%"; } if ($filterTrack !== 'All Tracks') { $query .= " AND u.track = ?"; $params[] = $filterTrack; } if ($filterGrade !== 'All Grades') { $query .= " AND u.grade_level = ?"; $params[] = $filterGrade; } $stmt = $pdo->prepare($query); $stmt->execute($params); $voters = $stmt->fetchAll(); // Get unique values for filters $tracks = $pdo->query("SELECT DISTINCT track FROM users WHERE track IS NOT NULL ORDER BY track")->fetchAll(PDO::FETCH_COLUMN); $grades = $pdo->query("SELECT DISTINCT grade_level FROM users WHERE grade_level IS NOT NULL ORDER BY grade_level")->fetchAll(PDO::FETCH_COLUMN); $projectDescription = $_SERVER['PROJECT_DESCRIPTION'] ?? 'Online Election System for Senior High School'; ?> Voter Management | <?= htmlspecialchars($projectDescription) ?>

Voters List

Managing voters for

TOTAL VOTERS
VOTERS WHO VOTED
VOTERS WHO HAVEN'T VOTED
USER ID NAME EMAIL TRACK GRADE STATUS ACTIONS
No voters assigned to this election.
Grade