What are common methods for distributing database output across multiple pages in PHP?

When dealing with a large amount of data in a database, it is common to distribute the output across multiple pages to improve performance and user experience. One common method to achieve this is by using pagination, where a limited number of records are displayed on each page with navigation links to move between pages.

// Assuming $results is an array of database records
$records_per_page = 10;
$total_records = count($results);
$total_pages = ceil($total_records / $records_per_page);

if (!isset($_GET['page']) || $_GET['page'] < 1 || $_GET['page'] > $total_pages) {
    $page = 1;
} else {
    $page = $_GET['page'];
}

$start = ($page - 1) * $records_per_page;
$end = $start + $records_per_page;
$paginated_results = array_slice($results, $start, $records_per_page);

foreach ($paginated_results as $result) {
    // Display the data on the page
}

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