Pagination PHP et MySQL : un guide complet
La pagination est une technique utilisée pour afficher de grands ensembles de données dans des portions gérables. En PHP et MySQL, la pagination peut être implémentée à l'aide d'une combinaison de requêtes SQL et de code PHP.
Pour paginer les résultats de la requête MySQL que vous avez fournie, vous pouvez suivre ces étapes :
- Déterminez le nombre de résultats par page : Supposons que vous souhaitiez afficher 10 résultats par page. Stockez cette valeur dans une variable nommée $perPage.
- Obtenez le numéro de page actuel : utilisez le paramètre $_GET['page'] pour obtenir le numéro de page actuel. S'il n'est pas défini, définissez-le par défaut sur 1. Stockez cette valeur dans une variable nommée $page.
- Calculez la limite de départ : pour déterminer la ligne de départ de la page actuelle, utilisez la formule $startAt = $perPage * ($page - 1). Cela calculera le numéro de ligne à partir duquel commencer à récupérer les résultats.
- Obtenir le nombre total de pages : exécutez une requête MySQL pour compter le nombre total de lignes dans le tableau. Divisez ce nombre par $perPage et arrondissez-le à l'aide de ceil(). Stockez le résultat dans une variable nommée $totalPages.
- Générer des liens de pagination : créez une boucle de 1 à $totalPages. Pour chaque page, générez un lien avec le numéro de page approprié. Utilisez la condition isset($_GET['page']) pour mettre en surbrillance la page actuelle.
- Exécutez la requête de pagination : modifiez votre requête MySQL d'origine pour ajouter la clause LIMIT avec les valeurs $startAt et $perPage. Cela récupérera uniquement les résultats de la page actuelle.
- Afficher les résultats et les liens de pagination : parcourez les résultats et affichez-les comme vous le souhaitez. Affichez les liens de pagination en dessous ou au-dessus des résultats pour permettre aux utilisateurs de naviguer dans les pages.
Voici un exemple de code qui implémente les étapes de pagination décrites ci-dessus :
<?php
// MySQL connection code here
$perPage = 10;
$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;
$startAt = $perPage * ($page - 1);
$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);
$links = "";
for ($i = 1; $i <= $totalPages; $i++) {
$links .= ($i != $page )
? "<a href='index.php?page=$i'>Page $i</a> "
: "$page ";
}
$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 results and pagination links here
echo $links; // Show links to other pages
?>
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!