Créa-blog

#100JoursPourCoder
Projet Créa-code

Ressources pour développeur web

Théme de la semaine : Découvrir node.js

Code de pagination complet en PHP, MySQL et CSS

Temps de lecture estimé : 12 minutes
Accueil HTML5 Code de pagination complet en PHP, MySQL et CSS

Lorsque l’on développe un site web dynamique en PHP relié à une base de données MySQL, une problématique revient presque toujours : comment afficher de nombreux résultats sans surcharger l’utilisateur ? Imaginez un blog avec des centaines d’articles, une boutique en ligne avec des milliers de produits ou encore une base de données d’utilisateurs à consulter. Si l’on affichait tout d’un seul coup, la page serait interminable, lente à charger et très désagréable à parcourir. C’est précisément pour répondre à ce problème que la pagination existe.

La pagination consiste à diviser le contenu en plusieurs pages, reliées entre elles par des liens permettant de naviguer facilement. Cela rend la lecture plus fluide, améliore l’expérience utilisateur et réduit le temps de chargement.

Dans ce tutoriel, nous allons voir ensemble ce qu’est la pagination, pourquoi elle est essentielle, puis comment la mettre en place pas à pas en PHP avec une base MySQL. Nous prendrons le temps de décortiquer chaque étape, avec des explications simples et accessibles même si vous êtes débutant. Ensuite, nous verrons comment embellir l’affichage avec du CSS pour obtenir un rendu professionnel. Enfin, nous conclurons par un cas pratique complet d’utilisation.

Qu’est-ce que la pagination ?

La pagination est une technique utilisée en développement web qui permet de découper une grande quantité de données en plusieurs pages distinctes. Au lieu d’afficher l’intégralité d’une liste d’éléments en une seule fois, on choisit d’en afficher un nombre limité par page, puis d’offrir à l’utilisateur la possibilité de passer à la page suivante ou de revenir à la précédente.

Par exemple, si vous possédez 500 produits à afficher dans votre boutique en ligne, vous pouvez décider de n’en montrer que 20 par page. Ainsi, la première page contiendra les produits 1 à 20, la deuxième les produits 21 à 40, et ainsi de suite jusqu’à atteindre la dernière page.

Le terme « pagination » vient évidemment du mot « page », et rappelle le fonctionnement d’un livre. On ne lit pas un livre d’une seule traite sur une seule page, mais on tourne les pages au fur et à mesure. Le principe est exactement le même sur un site web.

À quoi sert la pagination ?

La pagination joue un rôle clé dans la conception d’un site internet dynamique. Son utilité peut se résumer en trois grands points : l’ergonomie, la performance et le référencement.

Améliorer l’expérience utilisateur

L’un des objectifs principaux de la pagination est de faciliter la navigation. Si vous arrivez sur un site qui vous affiche directement 1000 résultats sans organisation, il est très probable que vous quittiez la page rapidement, découragé par la longueur et le désordre. Avec une pagination claire et bien pensée, vous pouvez explorer les données pas à pas, sans vous sentir submergé. Vous savez toujours où vous en êtes et combien de pages restent à parcourir.

Optimiser la performance du site

Une autre raison fondamentale d’utiliser la pagination est la performance. Charger une base de données complète et l’afficher en une seule fois peut prendre beaucoup de temps et consommer énormément de ressources, aussi bien côté serveur que côté navigateur. En découpant le contenu, vous ne chargez qu’une petite partie à chaque fois, ce qui accélère le rendu et soulage le serveur. Cette approche est particulièrement cruciale lorsque le volume de données est important.

Favoriser le référencement naturel (SEO)

La pagination est également bénéfique pour le référencement. Les moteurs de recherche comme Google préfèrent indexer des pages structurées, claires et rapides à charger. Une page unique remplie de milliers de lignes de contenu risque de ne pas être correctement indexée, voire d’être ignorée. En revanche, une série de pages numérotées offre une meilleure lisibilité pour les robots d’indexation, tout en permettant de cibler des mots-clés variés. C’est pourquoi les sites d’e-commerce, les blogs ou les annuaires utilisent presque systématiquement une pagination.

Donner une impression de professionnalisme

Enfin, la pagination apporte une dimension professionnelle à votre site. Un affichage bien structuré, avec des numéros de pages ou des boutons « précédent » et « suivant », rassure vos visiteurs et donne une image soignée de votre travail. Cela peut sembler anodin, mais dans le monde du web, chaque détail compte.

Comment mettre en place une pagination en PHP/MySQL ?

Maintenant que nous savons ce qu’est la pagination et pourquoi elle est utile, passons à la pratique. Nous allons voir comment l’implémenter pas à pas avec PHP et MySQL.

L’idée sera de partir d’un exemple concret, avec une base de données contenant des articles fictifs, puis de construire un script PHP capable d’afficher ces articles page par page.

Préparer la base de données MySQL

Imaginons que nous travaillons sur un petit blog. La base de données contient une table appelée articles qui stocke tous les billets publiés. Voici un exemple de structure simplifiée de cette table :

CREATE TABLE articles (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    titre VARCHAR(255) NOT NULL,
    contenu TEXT NOT NULL,
    date_publication DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);

Pour effectuer nos tests, insérons quelques données factices. Par exemple :

INSERT INTO articles (titre, contenu) VALUES
('Premier article', 'Ceci est le contenu du premier article.'),
('Deuxième article', 'Voici le contenu du deuxième article.'),
('Troisième article', 'Un autre article pour remplir la base.'),
('Quatrième article', 'Encore un contenu fictif.'),
('Cinquième article', 'Celui-ci servira pour nos tests de pagination.');

Dans un vrai site, bien sûr, cette table contiendrait des dizaines, voire des centaines d’articles. C’est cette quantité qui rend la pagination indispensable.

Se connecter à la base de données en PHP

Avant de pouvoir afficher quoi que ce soit, il nous faut établir une connexion à MySQL avec PHP. Voici un exemple de fichier config.php que nous allons inclure dans nos scripts :

<?php
$host = "localhost";
$dbname = "mon_blog";
$username = "root";
$password = "";

// Connexion avec PDO
try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die("Erreur de connexion : " . $e->getMessage());
}

Ici, nous utilisons PDO, une méthode moderne et sécurisée pour interagir avec MySQL. Elle permet notamment de préparer des requêtes, ce qui évite les failles de sécurité comme les injections SQL.

Déterminer combien d’articles afficher par page

La première étape de la pagination consiste à décider combien d’éléments seront visibles par page. Prenons un exemple : nous voulons afficher 3 articles par page. Ce chiffre peut être modifié selon vos besoins (5, 10, 20…).

Dans notre script, définissons une variable $articlesParPage :

<?php
$articlesParPage = 3;

Calculer le nombre total de pages

Ensuite, nous devons savoir combien d’articles existent au total dans la base. Cela nous permettra de calculer le nombre de pages nécessaires. Pour cela, nous faisons une requête qui compte le nombre d’enregistrements :

<?php
$sql = "SELECT COUNT(*) AS total FROM articles";
$stmt = $pdo->query($sql);
$result = $stmt->fetch();
$totalArticles = $result['total'];

// Calcul du nombre de pages
$totalPages = ceil($totalArticles / $articlesParPage);

La fonction ceil() arrondit toujours à l’entier supérieur. Ainsi, si nous avons 10 articles et que nous affichons 3 articles par page, nous obtenons ceil(10 / 3) = 4 pages.

Déterminer la page actuelle

La page actuelle est transmise dans l’URL par un paramètre, souvent nommé page. Par exemple :

  • index.php?page=1 pour la première page
  • index.php?page=2 pour la deuxième page

Si aucun paramètre n’est précisé, nous afficherons par défaut la page 1. Voici le code correspondant :

<?php
$pageActuelle = isset($_GET['page']) ? (int) $_GET['page'] : 1;

// Vérifier que la page est dans les bornes
if ($pageActuelle < 1) {
    $pageActuelle = 1;
} elseif ($pageActuelle > $totalPages) {
    $pageActuelle = $totalPages;
}

Calculer l’offset pour la requête SQL

L’offset représente le point de départ de la requête, c’est-à-dire combien d’articles ignorer avant d’afficher la série suivante.

La formule est la suivante :

OFFSET = (pageActuelle - 1) * articlesParPage

Ainsi, si nous sommes à la page 2 avec 3 articles par page, l’offset sera (2 - 1) * 3 = 3, ce qui veut dire que la requête ignorera les 3 premiers articles et affichera les 3 suivants.

<?php
$offset = ($pageActuelle - 1) * $articlesParPage;

Récupérer les articles pour la page courante

Nous pouvons maintenant exécuter une requête SQL pour obtenir uniquement les articles de la page actuelle, grâce aux clauses LIMIT et OFFSET :

<?php
$sql = "SELECT * FROM articles ORDER BY date_publication DESC LIMIT :limit OFFSET :offset";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':limit', $articlesParPage, PDO::PARAM_INT);
$stmt->bindValue(':offset', $offset, PDO::PARAM_INT);
$stmt->execute();
$articles = $stmt->fetchAll();

Ce code récupère uniquement les articles nécessaires pour l’affichage de la page en cours.

Afficher les articles

Il ne reste plus qu’à afficher les résultats dans une boucle. Par exemple :

<?php foreach ($articles as $article): ?>
    <h2><?= htmlspecialchars($article['titre']); ?></h2>
    <p><?= nl2br(htmlspecialchars($article['contenu'])); ?></p>
    <hr>
<?php endforeach; ?>

Ici, nous utilisons htmlspecialchars() pour éviter les failles XSS, et nl2br() pour conserver les retours à la ligne.

Créer la navigation entre les pages

Enfin, construisons les liens de navigation. Nous allons générer une liste de pages cliquables avec un petit système de « Précédent » et « Suivant » :

<nav>
    <?php if ($pageActuelle > 1): ?>
        <a href="index.php?page=<?= $pageActuelle - 1 ?>">Précédent</a>
    <?php endif; ?>

    <?php for ($i = 1; $i <= $totalPages; $i++): ?>
        <?php if ($i == $pageActuelle): ?>
            <strong><?= $i ?></strong>
        <?php else: ?>
            <a href="index.php?page=<?= $i ?>"><?= $i ?></a>
        <?php endif; ?>
    <?php endfor; ?>

    <?php if ($pageActuelle < $totalPages): ?>
        <a href="index.php?page=<?= $pageActuelle + 1 ?>">Suivant</a>
    <?php endif; ?>
</nav>

Ce code génère une navigation simple mais fonctionnelle. Les utilisateurs peuvent cliquer sur un numéro de page ou utiliser les boutons de navigation.

Formation web et informatique - Alban Guillier - Formateur

Des formations informatique pour tous !

Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…

Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.

Découvrez mes formations Qui suis-je ?

Mettre en page une pagination en CSS

Jusqu’ici, nous avons généré un système simple : une série de liens numérotés, accompagnés de boutons « Précédent » et « Suivant ». C’est fonctionnel, mais visuellement peu attrayant. Avec un peu de CSS, nous pouvons obtenir une pagination claire, moderne et agréable à utiliser.

La structure HTML de base

Reprenons la structure générée par notre code PHP. Elle ressemble à ceci :

<nav class="pagination">
    <a href="index.php?page=1">Précédent</a>
    <a href="index.php?page=1">1</a>
    <a href="index.php?page=2">2</a>
    <strong>3</strong>
    <a href="index.php?page=4">4</a>
    <a href="index.php?page=5">5</a>
    <a href="index.php?page=4">Suivant</a>
</nav>

Pour faciliter la mise en forme, il est préférable d’enrichir légèrement cette structure avec des classes, par exemple :

<nav class="pagination">
    <a href="index.php?page=2" class="prev">Précédent</a>
    <a href="index.php?page=1" class="page">1</a>
    <a href="index.php?page=2" class="page">2</a>
    <span class="current">3</span>
    <a href="index.php?page=4" class="page">4</a>
    <a href="index.php?page=5" class="page">5</a>
    <a href="index.php?page=4" class="next">Suivant</a>
</nav>

Mise en forme simple et lisible

Commençons par centrer les éléments et ajouter un minimum de style :

.pagination {
    text-align: center;
    margin: 20px 0;
    font-family: Arial, sans-serif;
}

.pagination a,
.pagination span {
    display: inline-block;
    padding: 8px 12px;
    margin: 0 4px;
    border: 1px solid #ddd;
    color: #333;
    text-decoration: none;
    border-radius: 4px;
}

.pagination a:hover {
    background-color: #f0f0f0;
}

.pagination .current {
    background-color: #007BFF;
    color: white;
    border-color: #007BFF;
    font-weight: bold;
}

Explications :

  • Nous centrons toute la pagination avec text-align: center.
  • Les liens et numéros sont rendus sous forme de petits blocs avec inline-block.
  • Chaque élément est espacé (margin) et protégé par un peu de padding.
  • La page courante se distingue grâce à une couleur de fond bleue et un texte blanc.

Le résultat est déjà bien plus agréable à lire qu’une simple liste brute.

Ajouter un style professionnel

Si vous souhaitez un rendu encore plus moderne, vous pouvez jouer avec les ombres, les arrondis et une palette de couleurs harmonieuse :

.pagination a,
.pagination span {
    display: inline-block;
    padding: 10px 15px;
    margin: 0 5px;
    border: 1px solid #ccc;
    background: #fff;
    color: #333;
    text-decoration: none;
    border-radius: 6px;
    transition: background 0.3s, color 0.3s;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.pagination a:hover {
    background-color: #007BFF;
    color: white;
}

.pagination .current {
    background-color: #28a745;
    color: white;
    border-color: #28a745;
}

Explications :

  • L’effet transition rend le changement de couleur plus fluide.
  • La box-shadow donne un léger relief, rendant chaque bouton plus cliquable.
  • La couleur verte pour la page actuelle met en valeur l’endroit où vous vous trouvez.

Exemple avec navigation responsive

Sur mobile, une pagination avec beaucoup de numéros risque de prendre trop de place. Une astuce consiste à réduire la taille et l’espacement des boutons en CSS avec une media query :

@media (max-width: 600px) {
    .pagination a,
    .pagination span {
        padding: 6px 8px;
        margin: 0 2px;
        font-size: 14px;
    }
}

Ainsi, la pagination restera lisible même sur les petits écrans.

Optimisation UX : afficher moins de pages

Si vous avez 50 pages, afficher tous les numéros risque d’être fastidieux. Dans ce cas, vous pouvez limiter l’affichage à quelques pages autour de la page courante. Par exemple :

Précédent | 1 | 2 | 3 | … | 10 | Suivant

Cela s’implémente en PHP, mais c’est le CSS qui rendra ce système clair et harmonieux visuellement. Avec ce CSS, votre pagination ne sera plus seulement fonctionnelle, mais aussi agréable à utiliser et adaptée aux mobiles.

Cas pratique : pagination sur un blog en PHP/MySQL

Imaginons que vous développiez un blog avec des dizaines d’articles. Chaque page de votre site doit afficher seulement 5 articles. Le lecteur doit pouvoir naviguer vers les articles plus anciens ou revenir aux plus récents grâce à une pagination claire et esthétique.

1. Structure de la base de données

Nous allons créer une table articles dans MySQL. Voici une version simplifiée :

CREATE TABLE articles (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    titre VARCHAR(255) NOT NULL,
    contenu TEXT NOT NULL,
    date_publication DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);

Ensuite, ajoutons quelques données fictives pour tester :

INSERT INTO articles (titre, contenu) VALUES
('Bienvenue sur mon blog', 'Ceci est le tout premier article.'),
('Pagination en PHP', 'Un tutoriel pratique pour apprendre la pagination.'),
('Découverte de CSS', 'Comment améliorer le design avec CSS.'),
('Les bases de MySQL', 'Apprendre à manipuler les bases de données.'),
('Introduction à PHP', 'Premiers pas en PHP pour débutants.'),
('Structurer un site web', 'Quelques conseils pour organiser vos fichiers.'),
('Créer un formulaire sécurisé', 'Apprendre à gérer les formulaires en PHP.'),
('Optimiser votre SEO', 'Les bonnes pratiques pour mieux référencer vos pages.'),
('Construire un site responsive', 'Adapter votre site aux mobiles et tablettes.'),
('Apprendre JavaScript', 'Découverte du langage côté client.');

Nous avons maintenant 10 articles. Comme nous affichons 5 articles par page, nous aurons 2 pages.

2. Connexion à la base (fichier config.php)

<?php
$host = "localhost";
$dbname = "mon_blog";
$username = "root";
$password = "";

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die("Erreur de connexion : " . $e->getMessage());
}

3. Script principal (fichier index.php)

Voici un exemple complet avec pagination :

<?php
require_once "config.php";

// Nombre d’articles par page
$articlesParPage = 5;

// Compter le nombre total d’articles
$sql = "SELECT COUNT(*) AS total FROM articles";
$stmt = $pdo->query($sql);
$totalArticles = $stmt->fetch()['total'];

// Calcul du nombre de pages
$totalPages = ceil($totalArticles / $articlesParPage);

// Déterminer la page actuelle
$pageActuelle = isset($_GET['page']) ? (int) $_GET['page'] : 1;
if ($pageActuelle < 1) $pageActuelle = 1;
if ($pageActuelle > $totalPages) $pageActuelle = $totalPages;

// Calcul de l’offset
$offset = ($pageActuelle - 1) * $articlesParPage;

// Récupérer les articles de la page courante
$sql = "SELECT * FROM articles ORDER BY date_publication DESC LIMIT :limit OFFSET :offset";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':limit', $articlesParPage, PDO::PARAM_INT);
$stmt->bindValue(':offset', $offset, PDO::PARAM_INT);
$stmt->execute();
$articles = $stmt->fetchAll();
?>
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <title>Blog avec pagination</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <h1>Mon blog</h1>

    <?php foreach ($articles as $article): ?>
        <article>
            <h2><?= htmlspecialchars($article['titre']) ?></h2>
            <p><?= nl2br(htmlspecialchars($article['contenu'])) ?></p>
            <small>Publié le <?= date("d/m/Y", strtotime($article['date_publication'])) ?></small>
        </article>
        <hr>
    <?php endforeach; ?>

    <!-- Pagination -->
    <nav class="pagination">
        <?php if ($pageActuelle > 1): ?>
            <a href="index.php?page=<?= $pageActuelle - 1 ?>" class="prev">Précédent</a>
        <?php endif; ?>

        <?php for ($i = 1; $i <= $totalPages; $i++): ?>
            <?php if ($i == $pageActuelle): ?>
                <span class="current"><?= $i ?></span>
            <?php else: ?>
                <a href="index.php?page=<?= $i ?>" class="page"><?= $i ?></a>
            <?php endif; ?>
        <?php endfor; ?>

        <?php if ($pageActuelle < $totalPages): ?>
            <a href="index.php?page=<?= $pageActuelle + 1 ?>" class="next">Suivant</a>
        <?php endif; ?>
    </nav>
</body>
</html>

4. Feuille de style (fichier style.css)

Voici un style simple mais moderne pour embellir notre pagination et articles :

body {
    font-family: Arial, sans-serif;
    max-width: 800px;
    margin: 0 auto;
    padding: 20px;
}

h1 {
    text-align: center;
    margin-bottom: 30px;
}

article h2 {
    color: #007BFF;
    margin-bottom: 10px;
}

article p {
    line-height: 1.6;
}

.pagination {
    text-align: center;
    margin-top: 20px;
}

.pagination a,
.pagination span {
    display: inline-block;
    padding: 8px 12px;
    margin: 0 4px;
    border: 1px solid #ccc;
    border-radius: 4px;
    text-decoration: none;
    color: #333;
    transition: background 0.3s, color 0.3s;
}

.pagination a:hover {
    background: #007BFF;
    color: #fff;
}

.pagination .current {
    background: #28a745;
    color: white;
    border-color: #28a745;
    font-weight: bold;
}

5. Résultat final

  • La page affiche 5 articles maximum.
  • Les articles sont listés du plus récent au plus ancien.
  • Les liens de pagination apparaissent sous les articles.
  • La page courante est mise en avant avec un fond vert.
  • Les boutons « Précédent » et « Suivant » apparaissent uniquement si nécessaire.

Bonnes pratiques pour la pagination

Nous venons de parcourir ensemble toutes les étapes nécessaires pour mettre en place une pagination simple en PHP/MySQL.

Vous avez vu qu’il ne s’agit pas seulement d’un détail technique : la pagination est un élément essentiel de l’expérience utilisateur. Sans elle, un site affichant de grandes quantités de données deviendrait vite illisible et lent. Grâce à elle, les contenus sont organisés, la navigation est claire, et la performance du site est grandement améliorée.

Nous avons d’abord expliqué ce qu’est la pagination et à quoi elle sert. Ensuite, nous avons appris à la coder pas à pas en PHP et MySQL :

  • compter les enregistrements,
  • calculer le nombre de pages,
  • déterminer la page courante via l’URL,
  • récupérer les bons résultats avec LIMIT et OFFSET,
  • et enfin construire une navigation simple avec des liens.

Puis, nous avons travaillé la partie design en CSS, afin que la pagination soit agréable et professionnelle, aussi bien sur ordinateur que sur mobile. Enfin, nous avons mis en place un cas pratique complet appliqué à un blog, avec un code prêt à l’emploi.

Conseils avancés pour aller plus loin

Si vous souhaitez améliorer encore votre pagination, voici quelques pistes intéressantes :

Réduire le nombre de liens affichés

Sur un site avec des dizaines de pages, il est inutile d’afficher tous les numéros. Montrez uniquement quelques pages autour de la page courante, et utilisez des points de suspension (...) pour indiquer les pages éloignées. Exemple :

Précédent | 1 | 2 | 3 | … | 15 | Suivant

Ajouter des métadonnées pour le SEO

Google et d’autres moteurs apprécient lorsque les pages paginées contiennent des balises spécifiques comme rel="prev" et rel="next". Cela permet aux robots de mieux comprendre la relation entre les différentes pages.

Utiliser la pagination Ajax

Plutôt que de recharger toute la page à chaque clic, vous pouvez charger les résultats suivants en arrière-plan avec JavaScript (Ajax). Cela rend l’expérience plus fluide. Toutefois, pensez à conserver une version classique pour l’accessibilité et le SEO.

Mettre en place un défilement infini

Une autre variante consiste à charger automatiquement de nouveaux résultats lorsqu’on arrive en bas de la page, comme le font de nombreux réseaux sociaux. Cette technique est séduisante, mais elle peut poser des problèmes de référencement et de performance si elle est mal gérée.

Optimiser les requêtes MySQL

Lorsque vous travaillez avec de très grandes tables (des centaines de milliers d’enregistrements), la combinaison LIMIT et OFFSET peut devenir lente. Dans ce cas, il est parfois plus efficace d’utiliser une pagination basée sur l’ID ou sur un index (WHERE id > X LIMIT Y), car cela évite à MySQL de parcourir toutes les lignes avant l’offset.


La pagination est une fonctionnalité incontournable dès que l’on manipule une quantité importante de données sur un site dynamique. Elle permet d’offrir à vos visiteurs une navigation fluide, rapide et agréable, tout en améliorant les performances techniques et le référencement naturel.

En PHP et MySQL, elle repose sur des concepts simples mais puissants : compter les enregistrements, limiter les résultats et générer des liens dynamiques. Avec un peu de CSS, elle peut même devenir un atout esthétique pour votre site.

Maintenant que vous avez toutes les clés en main, vous pouvez adapter cet exemple à vos propres projets : blog, boutique en ligne, annuaire, galerie photo… Les possibilités sont infinies. Et si vous souhaitez aller plus loin, pourquoi ne pas essayer la pagination Ajax ou le défilement infini pour moderniser encore plus votre site ?