Maison >base de données >tutoriel mysql >Comment implémenter la pagination PHP et MySQL pour de grands ensembles de données ?

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

Barbara Streisand
Barbara Streisandoriginal
2024-12-04 00:50:10635parcourir

How to Implement PHP and MySQL Pagination for Large Datasets?

Pagination PHP et MySQL

Une tâche courante des applications Web consiste à afficher de grands ensembles de données dans un format paginé, permettant aux utilisateurs d'afficher un nombre limité de nombre de résultats par page. Cela peut améliorer l'expérience utilisateur et les performances.

Considérons une requête MySQL qui récupère tous les enregistrements de la table « redirection » filtrés par un ID utilisateur :

SELECT * FROM redirect WHERE user_id = '".$_SESSION['user_id']."' ORDER BY 'timestamp'

Pour paginer cette requête de telle sorte qu'elle affiche 10 résultats par page, suivez ces étapes :

<?php

// Insert your MySQL connection code here

// Set the number of results per page
$perPage = 10;

// Get the current page number from GET request (or default to 1)
$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;

// Calculate the starting record for the specified page
$startAt = $perPage * ($page - 1);

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

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

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

// Execute the paginated query
$r = mysql_query($query);

$query = "SELECT * FROM `redirect`
WHERE `user_id`= '".$_SESSION['user_id']."' 
ORDER BY 'timestamp' LIMIT $startAt, $perPage";

$r = mysql_query($query);

// Display the results using the pagination system
echo $links; // Show links to other 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!

Déclaration:
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