<?php
// Connect to database
require_once 'admin/database/db_config.php';
echo "<h1>Resetting Payments Table Structure</h1>";
// Start transaction
$conn->begin_transaction();
try {
// Drop the payments table if it exists
$conn->query("DROP TABLE IF EXISTS payments");
// Create a new payments table with the correct structure
$createTable = "CREATE TABLE payments (
id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
user_id INT(11) NOT NULL,
course_id INT(11) 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,
marked_by INT(11) NULL,
UNIQUE KEY (transaction_id),
INDEX (user_id),
INDEX (course_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;";
if ($conn->query($createTable)) {
echo "<div class='alert alert-success' style='padding: 15px; background-color: #d4edda; color: #155724; border: 1px solid #c3e6cb; border-radius: 4px; margin-bottom: 15px;'>";
echo "<strong>Success!</strong> The payments table has been completely reset with the correct structure.";
echo "</div>";
// Commit transaction
$conn->commit();
} else {
throw new Exception("Error creating payments table: " . $conn->error);
}
} catch (Exception $e) {
// Rollback transaction on error
$conn->rollback();
echo "<div class='alert alert-danger' style='padding: 15px; background-color: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; border-radius: 4px; margin-bottom: 15px;'>";
echo "<strong>Error!</strong> " . $e->getMessage();
echo "</div>";
}
// 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' style='border-collapse: collapse; width: 100%;'>";
echo "<tr style='background-color: #f8f9fc;'><th style='padding: 8px; border: 1px solid #ddd;'>Field</th><th style='padding: 8px; border: 1px solid #ddd;'>Type</th><th style='padding: 8px; border: 1px solid #ddd;'>Null</th><th style='padding: 8px; border: 1px solid #ddd;'>Key</th><th style='padding: 8px; border: 1px solid #ddd;'>Default</th><th style='padding: 8px; border: 1px solid #ddd;'>Extra</th></tr>";
while ($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<td style='padding: 8px; border: 1px solid #ddd;'>" . $row['Field'] . "</td>";
echo "<td style='padding: 8px; border: 1px solid #ddd;'>" . $row['Type'] . "</td>";
echo "<td style='padding: 8px; border: 1px solid #ddd;'>" . $row['Null'] . "</td>";
echo "<td style='padding: 8px; border: 1px solid #ddd;'>" . $row['Key'] . "</td>";
echo "<td style='padding: 8px; border: 1px solid #ddd;'>" . $row['Default'] . "</td>";
echo "<td style='padding: 8px; border: 1px solid #ddd;'>" . $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 "</div>";
// Add warning about data loss
echo "<div class='alert alert-warning' style='padding: 15px; background-color: #fff3cd; color: #856404; border: 1px solid #ffeeba; border-radius: 4px; margin-top: 20px;'>";
echo "<strong>Warning:</strong> This script has reset the payments table. Any previous payment data has been deleted.";
echo "</div>";
?>