[php]
<?php
//copy the Pager_Wrapper file where you can include it
require_once 'Pager_Wrapper.php';
require_once 'MDB2.php';

//skipped the db connection code...
//let's just suppose we have a valid db connection in $db.

$pager_options = array(
    'mode'       => 'Sliding',
    'perPage'    => 10,
    'delta'      => 2,
);
$query = 'SELECT prod_name, prod_description FROM products';
$paged_data = Pager_Wrapper_MDB2($db, $query, $pager_options);

//show the results
echo '<ul>';
foreach ($paged_data['data'] as $product) {
    echo '<li>'.$product['prod_name'].': '.$product['prod_description'].'</li>';
}
echo '</ul>';

//show the links
echo $paged_data['links'];
?>

Ces méthodes sont beaucoup plus efficaces que d'aller récupérer de tous les enregistrements de la base de données dans un tableau, et de le paginer ensuite.

Seuls les enregistrements utiles sont récupérés, ce qui réduit considérablement la charge sur le serveur (et sur le réseau, si vous avez la db sur une autre machine).

Pager_Wrapper, qui est fourni avec le paquet PEAR::Pager, contient les fonctions prête à l'emploi fonctionnant avec PEAR DBALs: DB, MDB, MDB2, DB_DataObject, et avec la bibliothèque PHP Eclipse. Vous pouvez facilement écrire les vôtres en suivant les exemples.