How can pagination be implemented in PHP for a large dataset like a user list with over 300 entries?

When dealing with a large dataset like a user list with over 300 entries, it is important to implement pagination to improve performance and user experience. Pagination allows the data to be split into smaller, more manageable chunks that can be displayed one page at a time. This prevents loading all the data at once and reduces the strain on the server.

<?php

// Set the number of entries per page
$entriesPerPage = 10;

// Get the current page number from the URL parameter
$page = isset($_GET['page']) ? $_GET['page'] : 1;

// Calculate the offset for the SQL query
$offset = ($page - 1) * $entriesPerPage;

// Query the database for users with pagination
$sql = "SELECT * FROM users LIMIT $offset, $entriesPerPage";
$result = mysqli_query($connection, $sql);

// Display the user list
while ($row = mysqli_fetch_assoc($result)) {
    echo $row['username'] . "<br>";
}

// Display pagination links
$totalPages = ceil($totalEntries / $entriesPerPage);
for ($i = 1; $i <= $totalPages; $i++) {
    echo "<a href='?page=$i'>$i</a> ";
}

?>