MySQL Pagination in PHP
php
<?php
require "db.php";
$per_page = 10; // records per page
$page = max(1, (int)($_GET["page"] ?? 1));
$offset = ($page - 1) * $per_page;
// Get total count
$total = $pdo->query("SELECT COUNT(*) FROM students")->fetchColumn();
$pages = ceil($total / $per_page);
// Get current page data
$stmt = $pdo->prepare("SELECT * FROM students ORDER BY id DESC LIMIT :limit OFFSET :offset");
$stmt->bindValue(":limit", $per_page, PDO::PARAM_INT);
$stmt->bindValue(":offset", $offset, PDO::PARAM_INT);
$stmt->execute();
$students = $stmt->fetchAll();
?>
<!-- Display records -->
<?php foreach ($students as $s): ?>
<p><?= htmlspecialchars($s["name"]) ?> โ <?= $s["marks"] ?></p>
<?php endforeach; ?>
<!-- Pagination links -->
<div class="pagination">
<?php for ($i = 1; $i <= $pages; $i++): ?>
<a href="?page=<?= $i ?>" class="<?= ($i==$page)?'active':'' ?>"><?= $i ?></a>
<?php endfor; ?>
</div>