Подскажите что надо сделать для постраничного вывода?
Имею пока что простой вывод всего из таблицы:
function sql($sql,$array)
{
global $db;
try
{
$start = $db->prepare($sql);
if ($array) $start -> execute($array);
else $start -> execute();
return $start;
}
catch (PDOException $e) {
exit("Не удалось выполнить запрос!");
}
}
if ($_GET['m'] == 'news' OR !$_GET)
{
$title = 'Новости';
$news = sql("SELECT * FROM `News` ORDER BY `id` DESC LIMIT 100",false);
foreach($news as $new)
{
$content.= '<div class="block" id="'.$new['id'].'">
<div class="title"><a href="?n='.$new['id'].'" id="ajax" class="link">'.htmlspecialchars_decode($new['title']).'</a></div>
<div class="new">'.htmlspecialchars_decode($new['content']).'</div>
</div>';
}
if (!$content)
{
$content = Alert("Новостей нет.",false);
}
}
Демо: https://w-0rld.ru/
Вывод кнопок планирую на такой верстке:
<div class="pages">
<!-- Текущая страница -->
<a class="disabled">1</a>
<!-- Другие страницы -->
<a href="?m=news&page=2">2</a>
<a href="?m=news&page=3">3</a>
<a href="?m=news&page=4">4</a>
<a href="?m=news&page=5">5</a>
<a href="?m=news&page=6">6</a>
<a href="?m=news&page=7">7</a>
<a href="?m=news&page=8">8</a>
<a href="?m=news&page=9">9</a>
<a href="?m=news&page=10">10</a>
</div>
Погуглил, везде старые примеры, не вызывающие доверия.
function sql($sql, $page = 1, $array) {
global $db;
$limit = 20; // 20 записей на страницу
$from = ($page == 2) ? $limit : 0; // Начиная от 0 записи
$to = ($page == 2) ? ($from + $limit) : $limit; // Заканчивая 20-ой
if($page > 2) {
$from = ($limit * $page) - $limit;
$to = $from + $limit;
}
try {
$start = $db->prepare($sql . " LIMIT ".$from.", ".$to);
if ($array) $start -> execute($array);
else $start -> execute();
return $start;
}
catch (PDOException $e) {exit("Не удалось выполнить запрос!");}
}
LIMIT в функцию передавать не нужно, в функции он сам подставится.
Вызов функции будет в таком виде:
$news = sql("SELECT * FROM `News` ORDER BY `id` DESC", 2, false); // в данном случае выбрана страница 2
Сам код не тестировал, но суть должна быть понятна.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники