Pagination utilisant MySQL LIMIT, OFFSET avec réponse
La pagination permet de diviser un grand ensemble de données en pages plus petites et gérables, une technique courante dans le développement Web . MySQL propose des clauses LIMIT et OFFSET pour gérer la pagination.
Problème :
Vous devez créer plusieurs pages pour afficher les données d'une table de base de données avec un nombre prédéfini d'éléments par page, mais sans coder en dur la pagination logique.
Solution :
Utilisez un paramètre de pagination dans l'URL, tel que :
http://yoursite.com/itempage.php?page=2
Vous pouvez accéder au numéro de page demandé en utilisant $_GET['page'].
Modifiez votre requête SQL pour calculer dynamiquement le décalage en fonction de la page nombre :
// determine page number from $_GET $page = 1; if(!empty($_GET['page'])) { $page = filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT); if(false === $page) { $page = 1; } } // set the number of items to display per page $items_per_page = 4; // build query $offset = ($page - 1) * $items_per_page; $sql = "SELECT * FROM menuitem LIMIT " . $offset . "," . $items_per_page;
Pour déterminer le nombre total de pages, vous devez compter le nombre de lignes dans le tableau :
$sql = "SELECT your_primary_key_field FROM menuitem"; $result = mysqli_query($con, $sql); $row_count = mysqli_num_rows($result); // free the result set as you don't need it anymore mysqli_free_result($result); $page_count = 0; if (0 === $row_count) { // maybe show some error since there is nothing in your table } else { // determine page_count $page_count = ceil($row_count / $items_per_page); // double check that request page is in range if($page > $page_count) { // error to user, maybe set page to 1 $page = 1; } }
Lors de l'affichage des données paginées, vous pouvez utiliser le Variables $page et $page_count pour générer les liens appropriés :
// later when outputting page, you can simply work with $page and $page_count to output links // for example for ($i = 1; $i <= $page_count; $i++) { if ($i === $page) { // this is current page echo 'Page ' . $i . '<br>'; } else { // show link to other page echo '<a href="/menuitem.php?page=' . $i . '">Page ' . $i . '</a><br>'; } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!