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) ?>
Voter successfully registered!
Import completed successfully! new voters added, existing records updated.

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