Aucun TFE trouvé.
| ID | Titre | Auteur(s) | Année | Orientation | AP | Statut | Actions |
|---|---|---|---|---|---|---|---|
| Publié En attente |
getPDO(); // Get filter parameters $searchQuery = isset($_GET['search']) ? trim($_GET['search']) : ''; $yearFilter = isset($_GET['year']) ? intval($_GET['year']) : null; $orientationFilter = isset($_GET['orientation']) ? intval($_GET['orientation']) : null; // Build query $sql = "SELECT t.id, t.identifier, t.title, t.subtitle, t.year, o.name as orientation, ap.name as ap_program, GROUP_CONCAT(DISTINCT a.name) as authors, t.submitted_at, t.is_published FROM theses t LEFT JOIN orientations o ON t.orientation_id = o.id LEFT JOIN ap_programs ap ON t.ap_program_id = ap.id LEFT JOIN thesis_authors ta ON t.id = ta.thesis_id LEFT JOIN authors a ON ta.author_id = a.id WHERE 1=1"; $params = []; if ($searchQuery) { $sql .= " AND (t.title LIKE ? OR t.subtitle LIKE ? OR a.name LIKE ?)"; $searchParam = "%$searchQuery%"; $params[] = $searchParam; $params[] = $searchParam; $params[] = $searchParam; } if ($yearFilter) { $sql .= " AND t.year = ?"; $params[] = $yearFilter; } if ($orientationFilter) { $sql .= " AND t.orientation_id = ?"; $params[] = $orientationFilter; } $sql .= " GROUP BY t.id ORDER BY t.year DESC, t.submitted_at DESC"; $stmt = $pdo->prepare($sql); $stmt->execute($params); $theses = $stmt->fetchAll(); // Get unique years for filter $yearsStmt = $pdo->query("SELECT DISTINCT year FROM theses ORDER BY year DESC"); $years = $yearsStmt->fetchAll(PDO::FETCH_COLUMN); // Get orientations for filter $orientations = $db->getAllOrientations(); } catch (Exception $e) { error_log("Error loading theses list: " . $e->getMessage()); die("Erreur lors du chargement de la liste."); } ?>
Aucun TFE trouvé.
| ID | Titre | Auteur(s) | Année | Orientation | AP | Statut | Actions |
|---|---|---|---|---|---|---|---|
| Publié En attente |