Dans ce premier tutorial sur Quentin Zone, on va voir comment réaliser un système de pagination avec PHP/MySQL. Ce tuto peut être utile si vous avez une Base de donné MySQL et que vous voulez afficher les donnes sur plusieurs pages PHP.

MySQL:

Ma Base MySQL qui servira d’exemple ressemble a ça :

PHP:

I) Connexion et requête avec MySQL

Tout d’abord nous allons voir le code php qui va chercher les informations dans la base de données

[php]</code>

&lt;?php

$nb_annonce_page=3 // le nombre d’annonce a afficher par page , ici 3

try

{

$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;

$bdd = new PDO(‘mysql:host=’.$hote.’;dbname=’.$base. », $login, $password);  // Ici les information de conexion a MySQL
<pre>    $reponse = $bdd-&gt;query(‘SELECT * FROM info LIMIT ‘. $_GET['min'] .’, ‘. $$nb_annonce_page . »); // La requête a envoyer</pre>
while ($donnees = $reponse-&gt;fetch())

{

echo $donnees['nom'] . ‘- ‘ . $donnees['prenom'] . ‘ &lt;br /&gt;’; //on affiche les donnés

}

?&gt;

<code>[/php]

Dans cette première partie de code, nous avons déterminé dans la variable $nb_annonce_page le nombre d’entréé a afficher sur une seule page.

La requête MySQL

SELECT * FROM info LIMIT '. $_GET['min'] .', '. $$nb_annonce_page .'

SELECT * FROM info => Choisir la table "info"

LIMIT => Choisir des entré précise, la première valeur sélection la première entré et la seconde valeur dit sur combien d'entré a afficher

Extrait sur le site du zero

II) Diffèrent calcule pour préparer a la génération du menu

Maintenant nous allons voire comment récupérer le nombre d’entré dans la base

[php]

$stmt = $bdd-&gt;prepare(‘SELECT ID FROM info ORDER BY ID’);

$stmt -&gt; execute();

$nb_annonce=$stmt-&gt;rowcount(); // on enregistre le nombre d’entré dans la variable: $nb_annonce

[/php]

La variable « $nb_annonce » contient le nombre d’entré dans la base de donnés

Il faut maintenant calculer le nombre de page qu’il faudra pour afficher tout nos donnés

[php]

$a=$nb_annonce-1;

$division=$a/$nb_annonce_page;

$b=intval(abs($division));

$nb_page=$b+1;

[/php]

Pour résumer, on prend la valeur entière de nb_annonce-1/nb_annonce_page, puis on fait +1 a cette valeur.

III) Génération de menu

Pour générer le menu nous allons utiliser une boucle for.

[php]

$n=$nb_page;

for ($compte = 1; $compte &lt;= $n; $compte++) // Paramètre de la boucle

{

$c=$compte*$nb_annonce_page-$nb_annonce_page;

echo ‘ &lt;a href= »produit.php?min=’ .$c. ‘ »&gt;’ .$compte . ‘&lt;/a&gt;’;

}

[/php]

Cette boucle génère la menu, par exemple, 1,2,3,4

Pour finir il ne faut pas oublier de fermer la conexion a MySQL:

[php]

$reponse-&gt;closeCursor();

}

catch(Exception $e)

{

die(‘Erreur : ‘.$e-&gt;getMessage());

}

?&gt;

[/php]

Ce tuto est fini, si vous avez des questions n’hésitez pas. J’ai préfère choisir un menu du type « 1,2,3,4,5″ aux lieu de « page suivante-page précédente » car je trouve que la navigation est plus comme sa, mais en modifiant la boucle de la partie III il est possible de créé un système de pagination comme sa.

Recherches qui ont permis de trouver cet article:

3 commentaires pour “[Tuto] un système de pagination avec PHP et MySQL”

  • [...] Ce billet était mentionné sur Twitter par marin. marin a dit: [Tuto] un système de pagination avec PHP et MySQL http://ping.fm/89N6a [...]

  • Le tutoriel doit être vraiment bien, mais il est un peu compliqué à lire à cause de WordPress (code pas colorié + guillemet transformé par wordpress …). Je crois qu’il y a des plugins wordpress pour mieux afficher du code PHP.

  • Le tuto n’est pas vraiement clair! il est très compliqué, il manque aussi d’un vrai exemple concret!Peut être qu’il y a de meilleurs tutos pour pouvoir apprendre le système de pagination?

Laisser un commentaire


Blogroll