Path : /home/vishqocm/pcib.in/
File Upload :
Current File : //home/vishqocm/pcib.in/add_enrollment_number.php

<?php
// Set up error reporting for debugging
error_reporting(E_ALL);
ini_set('display_errors', 1);

// Manual database connection
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "popularcomputer";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
    die("<h1>Connection failed: " . $conn->connect_error . "</h1>");
} else {
    echo "<h1>Connected successfully to database: " . $dbname . "</h1>";
}

echo "<h1>Adding enrollment_number column to enrollments table</h1>";

// Check if enrollments table exists
$table_check = $conn->query("SHOW TABLES LIKE 'enrollments'");
if ($table_check->num_rows === 0) {
    echo "<p>Error: Table 'enrollments' does not exist in the database.</p>";
    exit;
}

// Check if enrollment_number column already exists
$column_check = $conn->query("SHOW COLUMNS FROM `enrollments` LIKE 'enrollment_number'");
if ($column_check->num_rows > 0) {
    echo "<p>Column 'enrollment_number' already exists in table 'enrollments'.</p>";
} else {
    // Add enrollment_number column
    $add_column = $conn->query("ALTER TABLE `enrollments` ADD COLUMN `enrollment_number` VARCHAR(30) DEFAULT NULL");
    if ($add_column) {
        echo "<p>Successfully added column 'enrollment_number' to table 'enrollments'.</p>";
    } else {
        echo "<p>Error: Failed to add column 'enrollment_number' to table 'enrollments': " . $conn->error . "</p>";
        exit;
    }
}

// Get all fields from enrollments table
echo "<h2>Fields in enrollments table:</h2>";
$fields_query = $conn->query("DESCRIBE enrollments");
if ($fields_query) {
    echo "<ul>";
    while ($field = $fields_query->fetch_assoc()) {
        echo "<li>" . $field['Field'] . " (" . $field['Type'] . ")</li>";
    }
    echo "</ul>";
}

// Update existing enrollments with generated enrollment numbers
$update_query = $conn->query("SELECT e.id, e.user_id, e.course_id, c.course_code 
                             FROM enrollments e 
                             LEFT JOIN courses c ON e.course_id = c.id
                             WHERE e.enrollment_number IS NULL");

if ($update_query && $update_query->num_rows > 0) {
    $updated_count = 0;
    while ($enrollment = $update_query->fetch_assoc()) {
        $enrollment_id = $enrollment['id'];
        $user_id = $enrollment['user_id'];
        $course_id = $enrollment['course_id'];
        $course_code = $enrollment['course_code'] ?: 'C' . sprintf('%03d', $course_id);
        
        // Generate enrollment number: COURSE_CODE-STUDENT_ID-YEAR-RANDOM
        $year = date('Y');
        $random = strtoupper(substr(md5(uniqid()), 0, 4));
        $enrollment_number = $course_code . '-' . $user_id . '-' . $year . '-' . $random;
        
        // Update the enrollment with the generated number
        if ($conn->query("UPDATE enrollments SET enrollment_number = '$enrollment_number' WHERE id = $enrollment_id")) {
            $updated_count++;
        } else {
            echo "<p>Error updating enrollment ID $enrollment_id: " . $conn->error . "</p>";
        }
    }
    
    if ($updated_count > 0) {
        echo "<p>Updated $updated_count enrollments with generated enrollment numbers.</p>";
    }
} else {
    echo "<p>No enrollments need updating or error: " . ($conn->error ?: "No records found") . "</p>";
}

echo "<p>Process completed. <a href='enroll/payment.php'>Return to payment page</a></p>";

// Close the connection
$conn->close();
?>