36459-vm/competitions.php
2026-05-27 14:29:58 +05:30

58 lines
2.0 KiB
PHP

<?php
// competitions.php
// Ensure DB config loaded BEFORE using db()
require_once __DIR__ . '/db/config.php';
// Start session if not already (header will also try, but safe to ensure)
if (session_status() === PHP_SESSION_NONE) {
session_start();
}
// get PDO connection via helper
$pdo = db();
// fetch competitions - prepared statement, safe
try {
$stmt = $pdo->prepare("SELECT id, title, description, start_date, end_date, registration_link FROM competitions ORDER BY start_date DESC");
$stmt->execute();
$competitions = $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $e) {
// If query fails, show friendly message (we enabled display_errors during debug)
die("Database query failed: " . htmlspecialchars($e->getMessage()));
}
// include header (will not start a new session because header uses safe check)
include __DIR__ . '/includes/header.php';
?>
<h2>Competitions</h2>
<?php if (empty($competitions)): ?>
<p>No competitions right now. Check back later.</p>
<?php else: ?>
<table style="width:100%; border-collapse:collapse;" border="1" cellpadding="8">
<thead style="background:#0b8c9f; color:#fff;">
<tr>
<th style="text-align:left; width:30%;">Title</th>
<th style="text-align:left; width:40%;">Description</th>
<th style="text-align:center; width:15%;">Start</th>
<th style="text-align:center; width:15%;">End</th>
</tr>
</thead>
<tbody>
<?php foreach ($competitions as $c): ?>
<tr>
<td><?php echo htmlspecialchars($c['title']); ?></td>
<td><?php echo nl2br(htmlspecialchars($c['description'])); ?></td>
<td style="text-align:center;"><?php echo htmlspecialchars(date('Y-m-d', strtotime($c['start_date']))); ?></td>
<td style="text-align:center;"><?php echo htmlspecialchars(date('Y-m-d', strtotime($c['end_date']))); ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php endif; ?>
<?php
// optional footer close (if you want to keep layout)
echo "</div></body></html>";