Election Dashboard
| Election Title | Status | Current End Time | Actions |
|---|---|---|---|
| = htmlspecialchars($e['title']) ?> | = htmlspecialchars($e['status']) ?> | = date('M d, H:i', strtotime($e['end_date_and_time'])) ?> |
|
query("SELECT * FROM elections WHERE archived = FALSE ORDER BY created_at DESC")->fetchAll(); } // Statistics (Filtered by Election) $totalVoters = $pdo->prepare("SELECT COUNT(*) FROM election_assignments WHERE election_id = ? AND role_in_election = 'Voter'"); $totalVoters->execute([$electionId]); $totalVoters = $totalVoters->fetchColumn(); $totalCandidates = $pdo->prepare("SELECT COUNT(*) FROM candidates WHERE election_id = ?"); $totalCandidates->execute([$electionId]); $totalCandidates = $totalCandidates->fetchColumn(); $totalVotes = $pdo->prepare("SELECT COUNT(DISTINCT voter_id) FROM votes WHERE election_id = ?"); $totalVotes->execute([$electionId]); $totalVotes = $totalVotes->fetchColumn(); // Chart Data: Participation per Grade Level $driver = $pdo->getAttribute(PDO::ATTR_DRIVER_NAME); $gradeCol = ($driver === 'pgsql') ? "u.grade_level::TEXT" : "CAST(u.grade_level AS CHAR)"; $gradeStats = $pdo->prepare("SELECT COALESCE($gradeCol, 'Unknown') as label, COUNT(DISTINCT v.voter_id) as count FROM users u JOIN votes v ON u.id = v.voter_id WHERE v.election_id = ? GROUP BY u.grade_level ORDER BY u.grade_level"); $gradeStats->execute([$electionId]); $gradeStats = $gradeStats->fetchAll(PDO::FETCH_ASSOC); // Chart Data: Participation per Track $trackStats = $pdo->prepare("SELECT COALESCE(u.track, 'Unknown') as label, COUNT(DISTINCT v.voter_id) as count FROM users u JOIN votes v ON u.id = v.voter_id WHERE v.election_id = ? GROUP BY u.track"); $trackStats->execute([$electionId]); $trackStats = $trackStats->fetchAll(PDO::FETCH_ASSOC); // Chart Data: Participation per Section $sectionStats = $pdo->prepare("SELECT u.track, u.section as label, COUNT(DISTINCT v.voter_id) as count FROM users u JOIN votes v ON u.id = v.voter_id WHERE v.election_id = ? GROUP BY u.track, u.section"); $sectionStats->execute([$electionId]); $sectionStats = $sectionStats->fetchAll(PDO::FETCH_ASSOC); // Tracks for dropdown $tracks = array_unique(array_column($sectionStats, 'track')); sort($tracks); $projectDescription = $_SERVER['PROJECT_DESCRIPTION'] ?? 'Online Election System for Senior High School'; ?>
| Election Title | Status | Current End Time | Actions |
|---|---|---|---|
| = htmlspecialchars($e['title']) ?> | = htmlspecialchars($e['status']) ?> | = date('M d, H:i', strtotime($e['end_date_and_time'])) ?> |
|