prepare(" SELECT username, class_handled FROM teachers WHERE id = ? "); $stmt->execute([$_SESSION['teacher_id']]); $teacher = $stmt->fetch(PDO::FETCH_ASSOC); $class = $teacher['class_handled']; /* Total */ $stmt = $pdo->prepare("SELECT COUNT(*) FROM students WHERE class = ?"); $stmt->execute([$class]); $total_students = $stmt->fetchColumn(); /* Active */ $stmt = $pdo->prepare(" SELECT COUNT(DISTINCT pa.roll_no) FROM practice_attempts pa JOIN students s ON s.roll_no = pa.roll_no WHERE s.class = ? AND pa.last_attempt_at >= NOW() - INTERVAL 7 DAY "); $stmt->execute([$class]); $active = $stmt->fetchColumn(); /* Slowing */ $stmt = $pdo->prepare(" SELECT COUNT(DISTINCT pa.roll_no) FROM practice_attempts pa JOIN students s ON s.roll_no = pa.roll_no WHERE s.class = ? AND pa.last_attempt_at BETWEEN NOW() - INTERVAL 10 DAY AND NOW() - INTERVAL 8 DAY "); $stmt->execute([$class]); $slowing = $stmt->fetchColumn(); /* Stalled */ $stmt = $pdo->prepare(" SELECT COUNT(*) FROM ( SELECT pa.roll_no FROM practice_attempts pa JOIN students s ON s.roll_no = pa.roll_no WHERE s.class = ? GROUP BY pa.roll_no HAVING MAX(pa.last_attempt_at) < NOW() - INTERVAL 10 DAY ) t "); $stmt->execute([$class]); $stalled = $stmt->fetchColumn(); ?>
Total Students
Active Learners
Slowing Learners
Stalled Learners