<?php
session_start();

// Проверка авторизации
if (!isset($_SESSION['user_id'], $_SESSION['username'], $_SESSION['db_name'])) {
    header("Location: /login.php");
    exit();
}

// Подключение к базе пользователя
$host = 'localhost';
$dbuser = 'root';
$dbpass = 'your_mysql_password';
$dbname = $_SESSION['db_name'];

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $dbuser, $dbpass);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die("Ошибка подключения к базе данных пользователя: " . $e->getMessage());
}

$message = '';
$result = null;
$columns = [];

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $query = trim($_POST['query'] ?? '');

    if (!empty($query)) {
        try {
            // Определяем тип запроса
            $stmt = $pdo->prepare($query);
            $stmt->execute();

            if (preg_match('/^\s*(SELECT|SHOW|DESCRIBE|EXPLAIN)\s/i', $query)) {
                // Если это запрос на выборку данных
                $result = $stmt->fetchAll(PDO::FETCH_ASSOC);

                if ($result) {
                    $columns = array_keys($result[0]);
                }
            } else {
                // Если это изменение данных (INSERT, UPDATE, DELETE и т.д.)
                $message = "Запрос успешно выполнен.";
            }
        } catch (PDOException $e) {
            $message = "Ошибка выполнения запроса: " . $e->getMessage();
        }
    } else {
        $message = "Введите SQL-запрос.";
    }
}
?>

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Личный кабинет - SQL Тренажер</title>
    <style>
        body { font-family: Arial, sans-serif; margin: 30px; }
        textarea { width: 100%; height: 120px; }
        table { border-collapse: collapse; width: 100%; margin-top: 20px; }
        th, td { border: 1px solid #ccc; padding: 8px; text-align: left; }
        th { background-color: #f0f0f0; }
        .success { color: green; }
        .error { color: red; }
        .logout { margin-top: 20px; }
    </style>
</head>
<body>

    <h2>Добро пожаловать, <?= htmlspecialchars($_SESSION['username']) ?>!</h2>

    <form method="post">
        <label for="query">Введите ваш SQL-запрос:</label><br>
        <textarea name="query" id="query" required><?= htmlspecialchars($_POST['query'] ?? '') ?></textarea><br><br>
        <button type="submit">Выполнить</button>
    </form>

    <?php if (!empty($message)): ?>
        <p class="<?= strpos($message, 'Ошибка') !== false ? 'error' : 'success' ?>">
            <?= htmlspecialchars($message) ?>
        </p>
    <?php endif; ?>

    <?php if ($result): ?>
        <h3>Результаты запроса:</h3>
        <table>
            <thead>
                <tr>
                    <?php foreach ($columns as $col): ?>
                        <th><?= htmlspecialchars($col) ?></th>
                    <?php endforeach; ?>
                </tr>
            </thead>
            <tbody>
                <?php foreach ($result as $row): ?>
                    <tr>
                        <?php foreach ($row as $cell): ?>
                            <td><?= htmlspecialchars((string)$cell) ?></td>
                        <?php endforeach; ?>
                    </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
    <?php endif; ?>

    <div class="logout">
        <form action="/logout.php" method="post">
            <button type="submit">Выйти</button>
        </form>
    </div>

</body>
</html>  
