What are some best practices for structuring PHP code for displaying guestbook entries with proper pagination and navigation controls?

When displaying guestbook entries with pagination and navigation controls in PHP, it is important to structure the code in a way that separates the display logic from the pagination logic. This can be achieved by using functions to handle the pagination calculations and displaying the entries on the page. Additionally, utilizing a database query to retrieve a specific subset of entries based on the current page number is crucial for efficient pagination.

<?php
// Function to retrieve guestbook entries based on pagination
function getGuestbookEntries($page, $entriesPerPage) {
    $offset = ($page - 1) * $entriesPerPage;
    $query = "SELECT * FROM guestbook_entries LIMIT $offset, $entriesPerPage";
    // Execute the query and return the results
}

// Display guestbook entries
function displayGuestbookEntries($entries) {
    // Loop through the entries and display them on the page
}

// Pagination controls
$currentPage = isset($_GET['page']) ? $_GET['page'] : 1;
$entriesPerPage = 10;
$entries = getGuestbookEntries($currentPage, $entriesPerPage);
displayGuestbookEntries($entries);

// Navigation controls
$totalEntries = // Get total number of entries from database
$totalPages = ceil($totalEntries / $entriesPerPage);
for ($i = 1; $i <= $totalPages; $i++) {
    echo "<a href='guestbook.php?page=$i'>$i</a> ";
}
?>