Интегрироватьsql запрос для вывода getPage

Написал сниппет usergenDisplaySnippet который выводит данные из базы данных. Теперь мне этот список нужно разбить постранично. Получается у каждого пользователя в личном кабинете отображается этот список. Скачал пакет getPage и getResources и попытался интегрировать вывод таким образом. Но страница долго грузится и в итоге ничего не выдает. Может что то неправильно делаю

<?php
// Сниппет для вывода данных из таблицы Mydatabase для текущего пользователя в MODX Revo с использованием getPage

// Получаем текущего пользователя MODX
$userid = $modx->user->get('id');

if (!$userid) {
    echo "Ошибка: Пользователь не авторизован.";
    return;
}

// Параметры для постраничной навигации
$limit = 10; // Количество записей на странице
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$offset = ($page - 1) * $limit;

// Получение данных из таблицы Mydatabase с ограничением по количеству записей
$sql = "SELECT one,two,thre FROM Mydatabase WHERE userid = :userid LIMIT :limit OFFSET :offset";
$stmt = $modx->prepare($sql);
$stmt->bindValue(':userid', $userid, PDO::PARAM_INT);
$stmt->bindValue(':limit', $limit, PDO::PARAM_INT);
$stmt->bindValue(':offset', $offset, PDO::PARAM_INT);
$stmt->execute();
$userData = $stmt->fetchAll(PDO::FETCH_ASSOC);

// Подсчет общего количества записей для постраничной навигации
$countSql = "SELECT COUNT(*) FROM Mydatabase WHERE userid = :userid";
$countStmt = $modx->prepare($countSql);
$countStmt->bindValue(':userid', $userid, PDO::PARAM_INT);
$countStmt->execute();
$totalRecords = $countStmt->fetchColumn();

if ($userData) {
    echo '<h3>Данные из таблицы Mydatabase :</h3>';
    echo '<table border="1">
            <tr>
                <th>one</th>
                <th>two</th>
                <th>thre</th>
            </tr>';
    foreach ($userData as $row) {
        echo '<tr>';
        echo '<td>' . htmlspecialchars($row['one']) . '</td>';
        echo '<td>' . htmlspecialchars($row['two']) . '</td>';
        echo '<td>' . htmlspecialchars($row['thre']) . '</td>';
        echo '</tr>';
    }
    echo '</table>';

    // Постраничная навигация с помощью getPage
    $pageNav = $modx->runSnippet('getPage', [
        'element' => 'usergenDisplaySnippet', // Имя текущего сниппета для повторного вызова
        'total' => $totalRecords,
        'limit' => $limit,
        'page' => $page,
        'pageNavVar' => 'pageNav',
        'tplPage' => '@INLINE <a href="[[~[[*id]]]]?page=[[+page]]">[[+page]]</a>',
        'tplPageCurrent' => '@INLINE <span>[[+page]]</span>',
        'tplPageNext' => '@INLINE <a href="[[~[[*id]]]]?page=[[+page]]">Вперед</a>',
        'tplPagePrev' => '@INLINE <a href="[[~[[*id]]]]?page=[[+page]]">Назад</a>'
    ]);
    echo '<div class="pagination">' . $pageNav . '</div>';
} else {
    echo '<p>Данных в таблице Mydatabase не найдено.</p>';
}
?>
Андре Владимирович
7 часов назад
modx.pro
8
0

Комментарии: 0

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0