La pagination (affichage par page)

Contenu du snippet

Petit cours simple sur la pagination

Source / Exemple :


Article pour AZ-PHP.COM

A travers les exercices précédent, vous avez appris à créer par exemple un livre d'or ou un annuaire pour les exos les plus marquants. Une question qui n'a pas été abordé est celle du nombre de réponse. Imaginer que dans votre livre d'or par exemple, vous ayez une cinquantaine de message. Afficher 50 messages sur une page va sûrement vous faire une page trop longue en contenue et à charger. Il vous faut donc répartir vos 50 messages sur plusieurs pages. Pour cela nous allons donc utiliser l'affichage par pages qu'on peut également appeler une barre d'affichage.

Nous allons donc utiliser le cours n°18 ( construction d'un livre d'or ) pour maîtriser l'affichage par pages.

Il nous suffit donc de modifier ( seulement ! ) la page accueil.php ; Le texte qui est en gras est celui qui a été rajouter/modifier au fichier accueil.php

<?
//----------------------------------------------------------------
//
// Page d'affichage des messages
//
//----------------------------------------------------------------

$mysql_host = 'localhost'; // entrer vôtre hote ici
$mysql_user = 'votre login'; // entrer vôtre login
$mysql_password = 'password'; // entrer vôtre password
$mysql_base = 'le nom de vôtre base de donnée'; // entrer le nom de votre base

//----------------------------------------------------------------

// Déclaration des variables
$nb_rep_pages=5; // Nombre de réponses par pages

//on se connecte à la base de donnée
$db = mysql_connect($mysql_host,$mysql_user,$mysql_password) or die ("erreur de connexion");

//selection de vôtre base de donnée
mysql_select_db($mysql_base,$db) or die ("erreur de connexion
base");

// Initialisation des variables
if(empty($page)) $page = 1;
if(empty($fin)){
$sql = "select count(*) as qte from livre_tbl";
$p = @mysql_query($sql,$db);
$fin = @mysql_result($p,"0","qte");
}

// Déclaration de la variable début
$debut = ($page - 1) * $nb_rep_pages;

//la requète de selection des messages
$req = mysql_query("SELECT date,pseudo,email,message from livre_tbl Order by date_verif Desc LIMIT $debut,$nb_rep_pages ") or die ("erreur requete");

// Ici on calcul le nombre de page
$nbpages = ceil($fin / $nb_rep_pages); // Ici on arrondi

// Affichage par page :)
for($i = 1;$i <= $nbpages;$i ++){
echo "<font size='1' face='verdana' color='#000000'><a href=\"?page=$i&fin=$fin\">Page $i</a></font>";
if($i < $nbpages) echo " - ";
}

//on ressort le contenu en boucle, et on stock dans un tableau avec mysql_fetch_array
while( $contenu = mysql_fetch_array ($req))
{

//on affiche le résultat
print 'Posté le : '.$contenu[date].'<br>';
print 'Auteur : <a href="mailto:'.$contenu[email].'">'.$contenu[pseudo].'</a><br>';
print 'Message : <br>'.$contenu[message].'<br>';
print '<hr>';

}

//on referme la connexion
mysql_close();

//----------------- FIN DU SCRIPT --------------------------------

?>

Voila :) c'est finit ! Comme vous le voyez, c'est tous simple.. En cas de problème ya le forum ;-)

Conclusion :


Bonne ProG !

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.