exec( "CREATE TABLE IF NOT EXISTS blocked_usernames ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(20) NOT NULL, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, created_by INT NULL, UNIQUE KEY unique_blocked_username (name), KEY idx_blocked_created_by (created_by) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci" ); } catch (Throwable $e) { } $blockedRows = []; try { $stmt = $pdo->prepare( "SELECT b.id, b.name, b.created_at, b.created_by, u.username AS created_by_username FROM blocked_usernames b LEFT JOIN users u ON u.id = b.created_by ORDER BY b.created_at DESC, b.id DESC LIMIT 100" ); $stmt->execute(); $blockedRows = $stmt->fetchAll(PDO::FETCH_ASSOC) ?: []; } catch (Throwable $e) { $blockedRows = []; } $suspendedRows = []; try { $stmt2 = $pdo->prepare( "SELECT u.id, u.username, u.email, COALESCE(u.suspension_reason, '') AS suspension_reason, u.suspended_until, a.username AS suspended_by_username FROM users u LEFT JOIN users a ON a.id = u.suspended_by WHERE u.account_suspended = 1 ORDER BY u.id DESC LIMIT 100" ); $stmt2->execute(); $suspendedRows = $stmt2->fetchAll(PDO::FETCH_ASSOC) ?: []; } catch (Throwable $e) { // Columns may not exist yet try { $stmt2b = $pdo->prepare( "SELECT id, username, email, '' AS suspension_reason, NULL AS suspended_until, NULL AS suspended_by_username FROM users WHERE account_suspended = 1 ORDER BY id DESC LIMIT 100" ); $stmt2b->execute(); $suspendedRows = $stmt2b->fetchAll(PDO::FETCH_ASSOC) ?: []; } catch (Throwable $e2) { $suspendedRows = []; } } ?>
| ID | Nazwa | Data dodania | Dodane przez | Akcja |
|---|---|---|---|---|
| Brak zablokowanych nazw | ||||
| 0) { echo '#' . $createdById; } else { echo '-'; } ?> | ||||
| ID | Username | Powód zawieszenia | Zawieszony do | Akcja | |
|---|---|---|---|---|---|
| Brak zawieszonych graczy | |||||