Sindbad~EG File Manager

Current Path : /home/copmadinaarea/thecopmadinaarea.org/portal/
Upload File :
Current File : /home/copmadinaarea/thecopmadinaarea.org/portal/check_members_table.php

<?php
require_once 'config/config.php';

$db = Database::getInstance()->getConnection();

echo "<h2>Checking Members Table Structure</h2>";

// Show columns
echo "<h3>Table Columns:</h3>";
try {
    $stmt = $db->query("SHOW COLUMNS FROM members");
    $columns = $stmt->fetchAll(PDO::FETCH_ASSOC);
    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>";
    foreach ($columns as $col) {
        echo "<tr>";
        echo "<td>{$col['Field']}</td>";
        echo "<td>{$col['Type']}</td>";
        echo "<td>{$col['Null']}</td>";
        echo "<td>{$col['Key']}</td>";
        echo "<td>{$col['Default']}</td>";
        echo "<td>{$col['Extra']}</td>";
        echo "</tr>";
    }
    echo "</table>";
} catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
}

// Show indexes
echo "<h3>Table Indexes:</h3>";
try {
    $stmt = $db->query("SHOW INDEX FROM members");
    $indexes = $stmt->fetchAll(PDO::FETCH_ASSOC);
    echo "<table border='1'>";
    echo "<tr><th>Key_name</th><th>Column_name</th><th>Non_unique</th><th>Index_type</th></tr>";
    foreach ($indexes as $idx) {
        echo "<tr>";
        echo "<td>{$idx['Key_name']}</td>";
        echo "<td>{$idx['Column_name']}</td>";
        echo "<td>{$idx['Non_unique']}</td>";
        echo "<td>{$idx['Index_type']}</td>";
        echo "</tr>";
    }
    echo "</table>";
} catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
}

// Check for empty or duplicate membershipcard_id
echo "<h3>Checking for problematic data:</h3>";
try {
    $stmt = $db->query("SELECT id, membershipcard_id, first_name, last_name FROM members WHERE membershipcard_id = '' OR membershipcard_id IS NULL");
    $emptyCards = $stmt->fetchAll(PDO::FETCH_ASSOC);
    if (count($emptyCards) > 0) {
        echo "<p style='color: red;'><strong>Found " . count($emptyCards) . " members with empty membershipcard_id:</strong></p>";
        echo "<table border='1'>";
        echo "<tr><th>ID</th><th>Membershipcard_id</th><th>Name</th></tr>";
        foreach ($emptyCards as $member) {
            echo "<tr>";
            echo "<td>{$member['id']}</td>";
            echo "<td>" . ($member['membershipcard_id'] ?? 'NULL') . "</td>";
            echo "<td>{$member['first_name']} {$member['last_name']}</td>";
            echo "</tr>";
        }
        echo "</table>";
    } else {
        echo "<p style='color: green;'>No members with empty membershipcard_id found.</p>";
    }
    
    // Check for duplicates
    $stmt = $db->query("
        SELECT membershipcard_id, COUNT(*) as count 
        FROM members 
        GROUP BY membershipcard_id 
        HAVING count > 1
    ");
    $duplicates = $stmt->fetchAll(PDO::FETCH_ASSOC);
    if (count($duplicates) > 0) {
        echo "<p style='color: red;'><strong>Found duplicate membershipcard_id values:</strong></p>";
        echo "<table border='1'>";
        echo "<tr><th>Membershipcard_id</th><th>Count</th></tr>";
        foreach ($duplicates as $dup) {
            echo "<tr>";
            echo "<td>{$dup['membershipcard_id']}</td>";
            echo "<td>{$dup['count']}</td>";
            echo "</tr>";
        }
        echo "</table>";
    } else {
        echo "<p style='color: green;'>No duplicate membershipcard_id found.</p>";
    }
} catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
}
?>

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists