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

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

DDD
Libérer: 2024-11-03 23:58:30
original
720 Les gens l'ont consulté

How to Implement Pagination with PHP and MySQL for Large Datasets?

Pagination avec PHP et MySQL

La pagination de grands ensembles de données est une tâche courante lors de la conception d'applications Web réactives. Cet article présentera une méthode d'implémentation de la pagination avec PHP et MySQL, vous permettant d'afficher un nombre limité de résultats par page.

Plus précisément, nous visons à paginer les résultats d'une requête MySQL hypothétique qui récupère les enregistrements d'un table appelée « redirection » basée sur un « user_id » transmis via une session PHP.

Implémentation du code

Pour implémenter la pagination, nous pouvons exploiter le script PHP suivant :

<code class="php"><?php

// MySQL connection code (not shown for brevity)

// Set pagination parameters
$perPage = 10;
$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;
$startAt = $perPage * ($page - 1);

// Get total number of records
$query = "SELECT COUNT(*) as total FROM redirect WHERE user_id = '".$_SESSION['user_id']."'";
$r = mysql_fetch_assoc(mysql_query($query));

// Calculate total pages
$totalPages = ceil($r['total'] / $perPage);

// Generate pagination links
$links = "";
for ($i = 1; $i <= $totalPages; $i++) {
  $links .= ($i != $page )
            ? "<a href='index.php?page=$i'>Page $i</a> "
            : "$page ";
}


// Execute paginated query
$query = "SELECT * FROM 'redirect' WHERE 'user_id'= \''.$_SESSION['user_id'].' \' ORDER BY 'timestamp' LIMIT $startAt, $perPage";
$r = mysql_query($query);

// Display results and pagination links
// ...

echo $links; // display pagination links
?></code>
Copier après la connexion

Explication

  • $perPage définit le nombre d'enregistrements à afficher par page.
  • $page représente la page en cours d'affichage.
  • $startAt calcule l'index de départ des enregistrements pour la page actuelle.
  • La requête COUNT(*) calcule le nombre total d'enregistrements pour déterminer le nombre de pages requis.
  • Les liens de pagination sont générés avec $links, et la page active est mise en surbrillance.
  • Enfin, une requête MySQL paginée est exécutée, compensant les résultats de $startAt et limitant le nombre de lignes renvoyées à $perPage.

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