-1, 're-watch' => -2, 'manga' => -3 ]; $yearValue = $yearMap[$year] ?? (int)$year; // Seasons array to organize records $seasons = ['winter', 'spring', 'summer', 'fall', 'omake']; // Fetch records from DB based on mode if ($yearValue == -1 || $yearValue == -2 || $yearValue == -3) { // For pre-2009, re-watch, or manga, we order by name (or differently if you prefer) $stmt = $conn->prepare("SELECT * FROM anime_list WHERE year = :year ORDER BY name ASC"); } else { // Normal year mode $stmt = $conn->prepare("SELECT * FROM anime_list WHERE year = :year ORDER BY CASE WHEN season = 'winter' THEN 1 WHEN season = 'spring' THEN 2 WHEN season = 'summer' THEN 3 WHEN season = 'fall' THEN 4 WHEN season = 'omake' THEN 5 ELSE 6 END, name ASC"); } $stmt->bindParam(':year', $yearValue, PDO::PARAM_INT); $stmt->execute(); $records = $stmt->fetchAll(PDO::FETCH_ASSOC); if ($yearValue == -1 || $yearValue == -2) { $mode = 'non-season-table'; } else if ($yearValue == -3) { $mode = 'manga'; } else { $mode = 'normal'; } // If normal mode, group records by season $seasonRecords = []; if ($mode === 'normal') { // Initialize season arrays foreach ($seasons as $s) { $seasonRecords[$s] = []; } // Place records into their respective season foreach ($records as $record) { $recordSeason = strtolower($record['season']); if (in_array($recordSeason, $seasons)) { $seasonRecords[$recordSeason][] = $record; } else { // If season is unknown, treat as 'omake' $seasonRecords['omake'][] = $record; } } } $yearTotal = count($records); $yearCompleted = 0; foreach ($records as $r) { if ($r['is_completed']) { $yearCompleted++; } } $yearPercent = $yearTotal > 0 ? round(($yearCompleted / $yearTotal) * 100) : 0; // Prepare data for the view $viewData = [ 'year' => $year, 'yearValue' => $yearValue, 'mode' => $mode, // either 'non-season-table' or 'normal' 'records' => $records, 'seasonRecords' => $seasonRecords ?? [], 'seasons' => $seasons, 'showSuggestButton' => ($mode === 'normal'), 'yearTotal' => $yearTotal, 'yearCompleted' => $yearCompleted, 'yearPercent' => $yearPercent ]; // Include the view include '../tmpl/fetch_data_view.php';