Maison > développement back-end > tutoriel php > Comment implémenter la pagination avec MySQL LIMIT et OFFSET ?

Comment implémenter la pagination avec MySQL LIMIT et OFFSET ?

DDD
Libérer: 2024-12-18 03:51:19
original
866 Les gens l'ont consulté

How do I Implement Pagination With MySQL LIMIT and OFFSET?

Pagination à l'aide de MYSQL LIMIT, OFFSET

La pagination est une technique utilisée pour afficher de grands ensembles de données dans des morceaux ou des pages gérables. Dans MySQL, cela peut être réalisé à l'aide des clauses LIMIT et OFFSET.

La question

Un utilisateur dispose d'une table de base de données avec un grand nombre d'éléments et souhaite implémenter pagination sur une page Web. L'utilisateur a déjà configuré un code pour afficher un nombre fixe d'éléments (par exemple 4) par page, mais il doit déterminer dynamiquement le nombre total de pages et permettre aux utilisateurs de naviguer entre elles.

La réponse

Pour y parvenir, il est recommandé d'utiliser un paramètre de requête URL pour la pagination. Le paramètre doit représenter le numéro de page, tel que "/itempage.php?page=2". Dans le code côté serveur, vous pouvez récupérer le numéro de page à l'aide de $_GET['page' et l'utiliser pour calculer les valeurs LIMIT et OFFSET pour votre requête SQL.

Par exemple :

$page = 1;
if (!empty($_GET['page'])) {
    $page = filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT);
    if ($page === false) {
        $page = 1;
    }
}

$items_per_page = 4;
$offset = ($page - 1) * $items_per_page;

// Build the SQL query
$sql = "SELECT * FROM menuitem LIMIT " . $offset . "," . $items_per_page;
Copier après la connexion

Pour déterminer le nombre total de pages, exécutez une requête SQL distincte avant de limiter les résultats :

$sql = "SELECT COUNT(*) AS total_rows FROM menuitem";
$result = mysqli_query($con, $sql);
$row_count = mysqli_num_rows($result);
mysqli_free_result($result);

$page_count = 0;
if ($row_count === 0) {
    // Handle empty table error
} else {
    $page_count = ceil($row_count / $items_per_page);

    if ($page > $page_count) {
        // Handle out-of-range page request
    }
}
Copier après la connexion

Avec le nombre total de pages et le numéro de page actuel, vous pouvez maintenant générer dynamiquement des liens de navigation pour le contenu paginé.

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal