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

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