<?php
// Connect to database
require_once 'admin/database/db_config.php';
echo "<h1>Updating Payments Table Structure</h1>";
// First, check if payments table exists
$tableExists = $conn->query("SHOW TABLES LIKE 'payments'");
if ($tableExists->num_rows == 0) {
// Create payments table
$createTable = "CREATE TABLE payments (
id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
user_id INT(11) NOT NULL,
course_id INT(11) NOT NULL,
amount DECIMAL(10,2) NOT NULL,
payment_method VARCHAR(50) NOT NULL,
transaction_id VARCHAR(100) NOT NULL,
status VARCHAR(20) NOT NULL DEFAULT 'pending',
payment_details TEXT NULL,
payment_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
UNIQUE KEY (transaction_id),
INDEX (user_id),
INDEX (course_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;";
if ($conn->query($createTable)) {
echo "<p>Created payments table with correct structure.</p>";
} else {
echo "<p>Error creating payments table: " . $conn->error . "</p>";
}
} else {
// Check if enrollment_id column exists
$checkColumn = $conn->query("SHOW COLUMNS FROM payments LIKE 'enrollment_id'");
if ($checkColumn->num_rows > 0) {
// Drop the enrollment_id column
if ($conn->query("ALTER TABLE payments DROP COLUMN enrollment_id")) {
echo "<p>Removed enrollment_id column from payments table.</p>";
} else {
echo "<p>Error removing enrollment_id column: " . $conn->error . "</p>";
}
} else {
echo "<p>enrollment_id column doesn't exist in payments table.</p>";
}
// Check if course_id column exists
$checkColumn = $conn->query("SHOW COLUMNS FROM payments LIKE 'course_id'");
if ($checkColumn->num_rows == 0) {
// Add course_id column
if ($conn->query("ALTER TABLE payments ADD COLUMN course_id INT(11) NULL AFTER user_id")) {
echo "<p>Added course_id column to payments table.</p>";
} else {
echo "<p>Error adding course_id column: " . $conn->error . "</p>";
}
} else {
// Make sure course_id allows NULL values
if ($conn->query("ALTER TABLE payments MODIFY COLUMN course_id INT(11) NULL")) {
echo "<p>Updated course_id column to allow NULL values.</p>";
} else {
echo "<p>Error updating course_id column: " . $conn->error . "</p>";
}
}
// Check if payment_details column exists
$checkColumn = $conn->query("SHOW COLUMNS FROM payments LIKE 'payment_details'");
if ($checkColumn->num_rows == 0) {
// Add payment_details column
if ($conn->query("ALTER TABLE payments ADD COLUMN payment_details TEXT NULL AFTER status")) {
echo "<p>Added payment_details column to payments table.</p>";
} else {
echo "<p>Error adding payment_details column: " . $conn->error . "</p>";
}
} else {
echo "<p>payment_details column already exists in payments table.</p>";
}
// Check if marked_by column exists (needed for admin-added payments)
$checkColumn = $conn->query("SHOW COLUMNS FROM payments LIKE 'marked_by'");
if ($checkColumn->num_rows == 0) {
// Add marked_by column
if ($conn->query("ALTER TABLE payments ADD COLUMN marked_by INT(11) NULL")) {
echo "<p>Added marked_by column to payments table.</p>";
} else {
echo "<p>Error adding marked_by column: " . $conn->error . "</p>";
}
} else {
echo "<p>marked_by column already exists in payments table.</p>";
}
}
// Show the current structure of the payments table
echo "<h2>Current Payments Table Structure</h2>";
$result = $conn->query("DESCRIBE payments");
if ($result) {
echo "<table border='1'>";
echo "<tr><th>Field</th><th>Type</th><th>Null</th><th>Key</th><th>Default</th><th>Extra</th></tr>";
while ($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<td>" . $row['Field'] . "</td>";
echo "<td>" . $row['Type'] . "</td>";
echo "<td>" . $row['Null'] . "</td>";
echo "<td>" . $row['Key'] . "</td>";
echo "<td>" . $row['Default'] . "</td>";
echo "<td>" . $row['Extra'] . "</td>";
echo "</tr>";
}
echo "</table>";
} else {
echo "<p>Error describing payments table: " . $conn->error . "</p>";
}
echo "<div style='margin-top: 20px;'>";
echo "<a href='enroll/payment.php?application_id=3' class='btn btn-primary' style='background-color: #4e73df; color: white; padding: 10px 20px; text-decoration: none; border-radius: 5px; margin-right: 10px;'>Go to Payment Page</a>";
echo "<a href='check_payments_table.php' class='btn btn-info' style='background-color: #36b9cc; color: white; padding: 10px 20px; text-decoration: none; border-radius: 5px;'>View Payments Table Data</a>";
echo "</div>";
?>