prepare("INSERT INTO assignments (title, description, due_date, student_id) VALUES (?, ?, ?, ?)"); $success_count = 0; foreach ($student_ids as $sid) { if ($stmt->execute([$title, $description, $due_date, $sid])) { $new_id = $pdo->lastInsertId(); logActivity($pdo, 'CREATE_ASSIGNMENT', "Created assignment ID: $new_id, Title: $title, Student ID: $sid"); $success_count++; } } if ($success_count > 0) { $success = "เพิ่มงานสำเร็จให้แก่ $success_count คน"; $action = 'list'; } else { $error = 'เกิดข้อผิดพลาดในการเพิ่มงาน'; } } } elseif (isset($_POST['edit'])) { $id = $_POST['id'] ?? ''; $status = $_POST['status'] ?? 'pending'; $student_ids = $_POST['student_ids'] ?? []; if (empty($title) || empty($due_date) || empty($student_ids)) { $error = 'กรุณากรอกข้อมูลให้ครบถ้วน (เลือกนักเรียนอย่างน้อย 1 คน)'; } else { // Update the current assignment with the FIRST selected student $first_student_id = array_shift($student_ids); $stmt = $pdo->prepare("UPDATE assignments SET title=?, description=?, due_date=?, student_id=?, status=? WHERE id=?"); if ($stmt->execute([$title, $description, $due_date, $first_student_id, $status, $id])) { logActivity($pdo, 'UPDATE_ASSIGNMENT', "Updated assignment ID: $id, Title: $title, Status: $status"); $success = 'แก้ไขงานสำเร็จ'; // If more students were checked, insert them as new assignments (cloning) if (!empty($student_ids)) { $insert_stmt = $pdo->prepare("INSERT INTO assignments (title, description, due_date, student_id, status) VALUES (?, ?, ?, ?, ?)"); $added_count = 0; foreach ($student_ids as $sid) { if ($insert_stmt->execute([$title, $description, $due_date, $sid, $status])) { $added_count++; } } if ($added_count > 0) { $success .= " และเพิ่มงานใหม่ให้กับนักเรียนที่เลือกเพิ่มอีก $added_count คน"; } } $action = 'list'; } else { $error = 'เกิดข้อผิดพลาดในการแก้ไขงาน'; } } } } // Handle delete if (isset($_GET['delete'])) { $id = $_GET['delete']; // Get assignment info before deleting for log $stmt_info = $pdo->prepare("SELECT title FROM assignments WHERE id=?"); $stmt_info->execute([$id]); $assign_info = $stmt_info->fetch(); $stmt = $pdo->prepare("DELETE FROM assignments WHERE id=?"); if ($stmt->execute([$id])) { $title = $assign_info ? $assign_info['title'] : 'Unknown'; logActivity($pdo, 'DELETE_ASSIGNMENT', "Deleted assignment ID: $id, Title: $title"); $success = 'ลบงานสำเร็จ'; } } // Fetch students for dropdowns $stmt = $pdo->query("SELECT id, name FROM users WHERE role = 'student' ORDER BY name"); $students = $stmt->fetchAll(); include 'includes/header.php'; include 'includes/sidebar.php'; ?>

จัดการงาน

เพิ่ม แก้ไข และลบงานที่มอบหมายให้นักเรียน

เพิ่มงานใหม่ กลับ

query("SELECT a.*, u.name as student_name, DATEDIFF(a.due_date, CURDATE()) as days_left FROM assignments a LEFT JOIN users u ON a.student_id = u.id ORDER BY a.id DESC"); $index = 1; while ($row = $stmt->fetch()): // Get all assigned students for this specific task $stmt_group = $pdo->prepare("SELECT u.name FROM assignments a JOIN users u ON a.student_id = u.id WHERE a.title = ? AND a.due_date = ?"); $stmt_group->execute([$row['title'], $row['due_date']]); $assigned_names = $stmt_group->fetchAll(PDO::FETCH_COLUMN); $assigned_list = implode(', ', $assigned_names); // Format Created At $created_timestamp = strtotime($row['created_at']); $created_date_th = date('d-m-', $created_timestamp) . (date('Y', $created_timestamp) + 543); // Format Due Date $due_timestamp = strtotime($row['due_date']); $due_date_th = date('d-m-', $due_timestamp) . (date('Y', $due_timestamp) + 543); $due_html = "{$due_date_th}"; $status_text = "รอดำเนินการ"; if ($row['status'] === 'pending') { if ($row['days_left'] < 0) { $due_html .= " เลยกำหนด " . abs($row['days_left']) . " วัน"; } elseif ($row['days_left'] <= $days_before) { $due_html .= " เหลือ {$row['days_left']} วัน"; } else { $due_html .= " เหลือ {$row['days_left']} วัน"; } } else { $status_text = "เสร็จสิ้น"; } ?>
ลำดับ ชื่องาน/ชื่อวิชา นักเรียน วันที่เพิ่มข้อมูล กำหนดส่ง สถานะ จัดการ
เสร็จสิ้น รอดำเนินการ
prepare("SELECT * FROM assignments WHERE id = ?"); $stmt->execute([$_GET['id']]); $item = $stmt->fetch(); if (!$item) { echo ""; exit; } } ?>