<?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>";
?>