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

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

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

echo "<h2>Database Table Verification</h2>";
echo "<p>Checking required tables...</p>";

// Function to create a table if it doesn't exist
function create_table_if_not_exists($conn, $table_name, $table_sql) {
    $check_table = mysqli_query($conn, "SHOW TABLES LIKE '$table_name'");
    if (mysqli_num_rows($check_table) == 0) {
        if (mysqli_query($conn, $table_sql)) {
            echo "Table '$table_name' created successfully.<br>";
            return true;
        } else {
            echo "Error creating table '$table_name': " . mysqli_error($conn) . "<br>";
            return false;
        }
    } else {
        echo "Table '$table_name' already exists. ✓<br>";
        return true;
    }
}

// Define all required tables

// Activities table
$activities_table = "CREATE TABLE activities (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT,
    user_type VARCHAR(50),
    activity_type VARCHAR(50),
    activity_description TEXT,
    ip_address VARCHAR(50) DEFAULT NULL,
    course_title VARCHAR(255) DEFAULT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)";

// Wishlist table
$wishlist_table = "CREATE TABLE wishlist (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    course_id INT NOT NULL,
    added_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    UNIQUE KEY student_course (user_id, course_id)
)";

// Enrollment Applications table
$enrollment_applications_table = "CREATE TABLE enrollment_applications (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    course_id INT NOT NULL,
    status VARCHAR(50) NOT NULL DEFAULT 'pending',
    personal_details TEXT,
    verification_token VARCHAR(64),
    admin_notes TEXT,
    application_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)";

// Student Documents table
$student_documents_table = "CREATE TABLE student_documents (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    document_type VARCHAR(100) NOT NULL,
    file_path VARCHAR(255) NOT NULL,
    status VARCHAR(50) DEFAULT 'pending',
    admin_notes TEXT,
    upload_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)";

// Enrollments table
$enrollments_table = "CREATE TABLE enrollments (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    course_id INT NOT NULL,
    status VARCHAR(50) NOT NULL DEFAULT 'pending',
    verification_token VARCHAR(64),
    enrolled_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    payment_plan VARCHAR(50) DEFAULT 'full'
)";

// Payments table
$payments_table = "CREATE TABLE payments (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    course_id INT NOT NULL,
    amount DECIMAL(10,2) NOT NULL,
    payment_method VARCHAR(50) NOT NULL,
    status VARCHAR(50) NOT NULL DEFAULT 'pending',
    transaction_id VARCHAR(100),
    payment_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)";

// Settings table
$settings_table = "CREATE TABLE settings (
    id INT AUTO_INCREMENT PRIMARY KEY,
    setting_key VARCHAR(100) NOT NULL,
    setting_value TEXT,
    setting_description TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    UNIQUE KEY (setting_key)
)";

// Create tables
$tables = [
    'activities' => $activities_table,
    'wishlist' => $wishlist_table,
    'enrollment_applications' => $enrollment_applications_table,
    'student_documents' => $student_documents_table,
    'enrollments' => $enrollments_table,
    'payments' => $payments_table,
    'settings' => $settings_table
];

$success = true;
foreach ($tables as $table_name => $table_sql) {
    $success = $success && create_table_if_not_exists($conn, $table_name, $table_sql);
}

// Insert default settings if they don't exist
if ($success) {
    echo "<h3>Adding default settings...</h3>";
    $default_settings = [
        ['school_name', 'Popular Computer Institute', 'School Name'],
        ['school_address', 'Your Institute Address, City, State, PIN', 'School Address'],
        ['school_phone', '+91 9876 543 210', 'School Phone Number'],
        ['school_email', '[email protected]', 'School Email Address'],
        ['school_logo', 'assets/img/logo.png', 'School Logo Path - This should be relative to the site root'],
        ['school_website', 'https://www.popularcomputerinstitute.com', 'School Website URL']
    ];

    foreach ($default_settings as $setting) {
        $check_query = "SELECT id FROM settings WHERE setting_key = ?";
        $stmt = $conn->prepare($check_query);
        $stmt->bind_param("s", $setting[0]);
        $stmt->execute();
        $result = $stmt->get_result();
        
        if ($result->num_rows == 0) {
            $insert_query = "INSERT INTO settings (setting_key, setting_value, setting_description) VALUES (?, ?, ?)";
            $stmt = $conn->prepare($insert_query);
            $stmt->bind_param("sss", $setting[0], $setting[1], $setting[2]);
            $stmt->execute();
            echo "Added default setting: " . $setting[0] . " ✓<br>";
        } else {
            echo "Setting '" . $setting[0] . "' already exists. ✓<br>";
        }
    }
}

echo "<h3>Database verification complete!</h3>";
echo "<p>All required tables and settings have been verified or created.</p>";
echo "<p><a href='../../index.php' class='btn btn-primary'>Return to Home</a></p>";
?>