Maison > développement back-end > tutoriel php > Comment implémenter la pagination en PHP et MySQL pour de grands ensembles de données ?

Comment implémenter la pagination en PHP et MySQL pour de grands ensembles de données ?

DDD
Libérer: 2024-11-02 10:46:30
original
965 Les gens l'ont consulté

How to implement pagination in PHP and MySQL for large datasets?

Pagination en PHP et MySQL : guide du débutant

La pagination est essentielle pour gérer de grands ensembles de données et améliorer l'expérience utilisateur. Cet article aborde un scénario de pagination courant en PHP et MySQL.

Les exigences de requête et de pagination

Considérez la requête MySQL suivante :

SELECT * FROM 'redirect'
WHERE 'user_id'= \''.$_SESSION['user_id'].' \' 
ORDER BY 'timestamp'
Copier après la connexion

L'objectif est de paginer les résultats, en affichant 10 résultats par page.

Mise en œuvre de la pagination

La clé de la pagination est de déterminer le point de départ des résultats à récupérer pour chacun page. Implémentez cela avec le code PHP suivant :

<code class="php">$perPage = 10;
$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;
$startAt = $perPage * ($page - 1);</code>
Copier après la connexion

Comptage du nombre total de pages

Pour afficher les liens de pagination, nous devons calculer le nombre total de pages :

<code class="php">$query = "SELECT COUNT(*) as total FROM redirect
WHERE user_id = '".$_SESSION['user_id']."'";
$r = mysql_fetch_assoc(mysql_query($query));
$totalPages = ceil($r['total'] / $perPage);</code>
Copier après la connexion

Génération de liens de pagination

Parcourez le nombre total de pages pour générer des liens de pagination :

<code class="php">$links = "";
for ($i = 1; $i <= $totalPages; $i++) {
  $links .= ($i != $page ) 
            ? "<a href='index.php?page=$i'>Page $i</a> "
            : "$page ";
}</code>
Copier après la connexion

Récupération des résultats pour la page actuelle

Enfin, récupérez les résultats de la page actuelle :

<code class="php">$query = "SELECT * FROM 'redirect'
WHERE 'user_id'= \''.$_SESSION['user_id'].' \' 
ORDER BY 'timestamp' LIMIT $startAt, $perPage";
$result = mysql_query($query);</code>
Copier après la connexion

Affichage des résultats

Affichez les résultats dans le format souhaité et inclure les liens de pagination pour naviguer dans les pages.

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