Système de pagination en PHP : ton site sans lag digne de Skyrim

Mukaz
03 Oct 2025, 06:58
51
0
3 Min de lecture
Un Mario pixel art qui saute de   Page 1 à  Page 2 , en évitant un Bowser qui représente 5000 résultats d’un coup .

Tu as déjà ouvert une page web qui te balance une /liste infinie de 5000 résultats/ sans pagination ?

Ton navigateur crie, ta RAM pleure, et ton PC ressemble à une PS4 qui essaye de faire tourner Cyberpunk 2077 au lancement.

Bref, si tu veux éviter que ton site ressemble à une vieille disquette 3,5 pouces qui grince, il est temps de /parler pagination en PHP./


Oui, ce truc relou mais indispensable pour afficher tes données par petits morceaux, comme un bon vieux DLC qui sort en 12 parties.



🎮 C’est quoi la pagination (et pourquoi c’est pas juste un caprice de dev) ?



Imagine Netflix qui balance TOUT son catalogue sur une seule page.

Résultat : tu scrolles jusqu’à la fin des temps, tu rates la moitié, et ton PC chauffe comme une GTX 480 en été.

La pagination, c’est l’art de découper ton contenu en pages.

Au lieu de 5000 résultats, tu affiches /10, 20 ou 50 par page./ Et hop : plus fluide, plus lisible, et Google te fait des câlins pour le SEO.



🧩 Le code PHP qui sauve ton site de la noyade



Un exemple simple, pour que même ton cousin qui code encore en FrontPage comprenne :





<?php // Connexion à la base

$conn = new PDO("mysql:host=localhost;dbname=blog", "root", "");

// Nombre d’articles par page

$parPage = 10;

// Numéro de page (avec sécurité anti-WTF)

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

if($page < 1) $page = 1;


// Calcul de l’offset

$offset = ($page - 1) $parPage;

// Requête avec LIMIT

$stmt = $conn->prepare("SELECT
FROM articles LIMIT :offset, :parPage");

$stmt->bindValue(':offset', $offset, PDO::PARAM_INT);

$stmt->bindValue(':parPage', $parPage, PDO::PARAM_INT); $stmt->execute();

$articles = $stmt->fetchAll();


// Affichage

foreach($articles as $a){

echo "<h2>".$a['titre']."</h2>

<p>".$a['contenu']."</p>";

}

// Liens de pagination (version basique)

$total = $conn->query("SELECT COUNT() FROM articles")->fetchColumn();

$pages = ceil($total / $parPage);

for($i=1; $i <= $pages; $i++){

echo "<a href='?page=$i'>$i</a> ";

}

?>



🕹️ Exemple WTF pour piger le truc



Disons que tu as une /base de données avec tous les Pokémon/ (oui, les 1010, même ceux que tu n’arrives pas à prononcer).

Sans pagination : tu balances tout. Ton site explose, ton utilisateur ragequit.

Avec pagination : tu affiches 20 Pokémon par page. Ton utilisateur navigue tranquillou, comme s’il feuilletait son Pokédex IRL.



⚔️ Les pièges du dev pagination



/
Page négative ou trop grande/ : certains petits malins taperont ?page=-9999. Sans check, ça casse tout.

/
SEO/ : Google aime quand tes pages sont propres (?page=2, ?page=3, etc.).

/
Design/ : évite les liens « page 1, 2, 3, … 9999 ». C’est pas une encyclopédie, mets des « Suivant » et « Précédent ».

/
Performances/ : sur une base énorme, LIMIT peut devenir lent. Dans ce cas, welcome aux index et aux optimisations SQL.



🚀 Conclusion



La pagination, c’est comme le respawn dans un FPS : sans ça, le jeu serait injouable.

Ton site aussi a besoin de respirer, de découper ses données en petites bouchées digestes.

Alors oui, ça demande 15 lignes de PHP et un peu de logique SQL, mais derrière, tes utilisateurs (et ton serveur) te remercieront.

Et toi, tu pourras enfin dire avec fierté : /
« Mon site ne lag pas plus que Skyrim avec 200 mods ».

Les obstacles sont ces choses que vous voyez lorsque vous détournez les yeux de votre objectif. – Henry Ford

Abonnez-vous à notre newsletter

Recevez les derniers articles directement par e-mail en vous inscrivant à notre newsletter.