prepare("SELECT id FROM lesson_completion WHERE user_id = ? AND lesson_id = ?"); $stmt->execute([$user_id, $lesson_id]); if ($stmt->fetch()) { // Already completed, do nothing } else { // Insert into lesson_completion $stmt = $db->prepare("INSERT INTO lesson_completion (user_id, lesson_id) VALUES (?, ?)"); $stmt->execute([$user_id, $lesson_id]); // Recalculate progress $total_lessons_stmt = $db->prepare("SELECT COUNT(*) FROM lessons l JOIN modules m ON l.module_id = m.id WHERE m.skill_id = ?"); $total_lessons_stmt->execute([$skill_id]); $total_lessons = $total_lessons_stmt->fetchColumn(); $completed_lessons_stmt = $db->prepare("SELECT COUNT(*) FROM lesson_completion lc JOIN lessons l ON lc.lesson_id = l.id JOIN modules m ON l.module_id = m.id WHERE lc.user_id = ? AND m.skill_id = ?"); $completed_lessons_stmt->execute([$user_id, $skill_id]); $completed_lessons = $completed_lessons_stmt->fetchColumn(); $progress = ($total_lessons > 0) ? round(($completed_lessons / $total_lessons) * 100) : 0; // Update enrollments table $update_stmt = $db->prepare("UPDATE enrollments SET progress = ? WHERE user_id = ? AND skill_id = ?"); $update_stmt->execute([$progress, $user_id, $skill_id]); } header("Location: learn.php?skill_id=$skill_id"); exit; } // Fetch skill details $stmt = $db->prepare("SELECT * FROM skills WHERE id = ?"); $stmt->execute([$skill_id]); $skill = $stmt->fetch(PDO::FETCH_ASSOC); if (!$skill) { die('Skill not found!'); } // Fetch completed lesson IDs for the user $completed_lessons_stmt = $db->prepare("SELECT lesson_id FROM lesson_completion WHERE user_id = ?"); $completed_lessons_stmt->execute([$user_id]); $completed_lesson_ids = $completed_lessons_stmt->fetchAll(PDO::FETCH_COLUMN); // Fetch modules and lessons $modules_stmt = $db->prepare("SELECT * FROM modules WHERE skill_id = ? ORDER BY `order` ASC"); $modules_stmt->execute([$skill_id]); $modules = $modules_stmt->fetchAll(PDO::FETCH_ASSOC); $lessons_stmt = $db->prepare("SELECT * FROM lessons WHERE module_id = ? ORDER BY `order` ASC"); // Calculate progress $total_lessons_stmt = $db->prepare("SELECT COUNT(*) FROM lessons l JOIN modules m ON l.module_id = m.id WHERE m.skill_id = ?"); $total_lessons_stmt->execute([$skill_id]); $total_lessons = $total_lessons_stmt->fetchColumn(); $completed_lessons = count($completed_lesson_ids); $progress = ($total_lessons > 0) ? round(($completed_lessons / $total_lessons) * 100) : 0; ?>
(Content for this course will be added soon.)
No lessons in this module yet.
You scored % on your last attempt.
= 70): ?> View CertificateYou need a score of 70% or higher to get a certificate.
Retake QuizYou have completed all the lessons. It's time to take the quiz!
Take Quiz