Как правильно вывести параметры с базы, с пагинацией

Рейтинг: 1Ответов: 1Опубликовано: 13.02.2023

Вот функция с необходимыми параметрами, как мне правильно вывести в SELECT с сортировкой в обратном порядке? Вот допустим строка:

$sql = "SELECT * FROM $table ORDER BY id DESC LIMIT $limit OFFSET $offset";

Таким образом не работает

function selectBlogsFromPostsOnIndex($table, $limit, $offset){
    global $pdo;
    $sql = "SELECT * FROM $table ORDER BY id DESC ";
    $query = $pdo->prepare($sql);
    $query->execute();
    dbCheckError($query);
    return $query->fetchAll();

}

Ответы

▲ 0
  1. Для начала правильно подметил Semyon Bayandin в комментариях, что
global $pdo;

нужно вынести в самое начало инициализации вашего проекта и не в таком формате, а передавать зависимость туда, когда вам нужно

  1. Вы не указали limit и offset в вашем sql
 $sql = 'SELECT * 
    FROM :table 
    ORDER BY id DESC 
    LIMIT :limit OFFSET :offset';
$query = $pdo->prepare($sql, [PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY]);
$query->execute(['table' => $table, 'limit ' => $limit, 'offset' => $offset]);

см.документацию: https://www.php.net/manual/ru/pdo.prepare.php