prepare("SELECT * FROM training_sessions WHERE id = ? AND coach_id = ?"); $stmt->execute([$session_id, $coach_id]); $session = $stmt->fetch(PDO::FETCH_ASSOC); if (!$session) { header('Location: training_sessions.php'); exit(); } // Fetch the coach's drills $stmt = $pdo->prepare("SELECT id, title FROM drills WHERE coach_id = ? ORDER BY title"); $stmt->execute([$coach_id]); $all_drills = $stmt->fetchAll(PDO::FETCH_ASSOC); // Fetch the drills currently in the session $stmt = $pdo->prepare("SELECT drill_id FROM training_session_drills WHERE session_id = ?"); $stmt->execute([$session_id]); $session_drill_ids = $stmt->fetchAll(PDO::FETCH_COLUMN); if ($_SERVER['REQUEST_METHOD'] === 'POST') { $name = trim($_POST['name'] ?? ''); $description = trim($_POST['description'] ?? ''); $selected_drills = $_POST['drills'] ?? []; if (empty($name)) $errors[] = 'Session name is required.'; if (empty($selected_drills)) $errors[] = 'You must select at least one drill.'; if (empty($errors)) { try { $pdo->beginTransaction(); // Update the session details $stmt = $pdo->prepare("UPDATE training_sessions SET name = ?, description = ? WHERE id = ?"); $stmt->execute([$name, $description, $session_id]); // Delete existing drill associations $stmt = $pdo->prepare("DELETE FROM training_session_drills WHERE session_id = ?"); $stmt->execute([$session_id]); // Insert new drill associations $stmt = $pdo->prepare("INSERT INTO training_session_drills (session_id, drill_id, sequence) VALUES (?, ?, ?)"); $sequence = 0; foreach ($selected_drills as $drill_id) { $stmt->execute([$session_id, $drill_id, ++$sequence]); } $pdo->commit(); header('Location: training_session.php?id=' . $session_id . '&status=updated'); exit(); } catch (PDOException $e) { $pdo->rollBack(); $errors[] = "Database error: " . $e->getMessage(); } } } $pageTitle = 'Edit Training Session'; ?>

Edit Training Session