Path : /home/vishqocm/pcib.in/admin/database/
File Upload :
Current File : //home/vishqocm/pcib.in/admin/database/create_attendance_table.php

<?php
// Include database configuration
require_once 'db_config.php';

// Enable error reporting for debugging
error_reporting(E_ALL);
ini_set('display_errors', 1);

// Check if this script is being accessed directly
$is_direct_access = (basename($_SERVER['PHP_SELF']) == basename(__FILE__));

// Start HTML output if accessed directly
if ($is_direct_access) {
    echo "<!DOCTYPE html>
    <html lang='en'>
    <head>
        <meta charset='UTF-8'>
        <meta name='viewport' content='width=device-width, initial-scale=1.0'>
        <title>Create Attendance Table</title>
        <link href='https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css' rel='stylesheet'>
    </head>
    <body class='bg-light'>
        <div class='container py-5'>
            <div class='card shadow'>
                <div class='card-header bg-primary text-white'>
                    <h3>Create Attendance Table</h3>
                </div>
                <div class='card-body'>";
}

// Create the attendance table if it doesn't exist
$create_attendance_table_sql = "
CREATE TABLE IF NOT EXISTS `attendance` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `enrollment_id` int(11) NOT NULL,
  `course_id` int(11) NOT NULL,
  `student_id` int(11) NOT NULL,
  `date` date NOT NULL,
  `status` enum('present','absent','late','excused') NOT NULL DEFAULT 'present',
  `marked_by` int(11) DEFAULT NULL,
  `notes` text DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  `updated_at` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `enrollment_id` (`enrollment_id`),
  KEY `course_id` (`course_id`),
  KEY `student_id` (`student_id`),
  KEY `marked_by` (`marked_by`),
  KEY `date` (`date`),
  CONSTRAINT `attendance_course_id_fk` FOREIGN KEY (`course_id`) REFERENCES `courses` (`id`) ON DELETE CASCADE,
  CONSTRAINT `attendance_enrollment_id_fk` FOREIGN KEY (`enrollment_id`) REFERENCES `enrollments` (`id`) ON DELETE CASCADE,
  CONSTRAINT `attendance_student_id_fk` FOREIGN KEY (`student_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
  CONSTRAINT `attendance_marked_by_fk` FOREIGN KEY (`marked_by`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
";

// Execute query
$result = $conn->query($create_attendance_table_sql);

// Output result
if ($is_direct_access) {
    if ($result) {
        echo "<div class='alert alert-success'><i class='fas fa-check-circle me-2'></i> Attendance table created successfully!</div>";
    } else {
        echo "<div class='alert alert-danger'><i class='fas fa-exclamation-circle me-2'></i> Error creating attendance table: " . $conn->error . "</div>";
    }
    
    // Add a back button
    echo "<div class='mt-4'>
            <a href='../index.php' class='btn btn-primary'>Back to Dashboard</a>
          </div>";
    
    // Close HTML tags
    echo "</div>
        </div>
    </div>
    <script src='https://kit.fontawesome.com/a076d05399.js' crossorigin='anonymous'></script>
    </body>
    </html>";
}

// Return result for programmatic use
return $result;
?>