Maison > base de données > tutoriel mysql > Comment implémenter la pagination de base de données en PHP à l'aide de LIMIT et OFFSET de MySQL ?

Comment implémenter la pagination de base de données en PHP à l'aide de LIMIT et OFFSET de MySQL ?

Patricia Arquette
Libérer: 2025-01-05 03:13:41
original
273 Les gens l'ont consulté

How to Implement Database Pagination in PHP using MySQL's LIMIT and OFFSET?

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
Copier après la connexion

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;
Copier après la connexion

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;
   }
}
Copier après la connexion

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=&quot;/menuitem.php?page=' . $i . '&quot;>Page ' . $i . '</a><br>';
   }
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal