» Affichage page par page (Array)
Rédigé par :
Guillaume
Le : 25/05/2003 à 23:28
Hits : 9187
L'affichage page par page d'un array..., le but étant de changer un peu de la récupération dans une db, on récupère souvent des données placées dans un ou plusieurs array, donc j'ai pensé utile de l'affichage page par page pour ce cas précis.
Dans cet exemple, j'ouvre le dossier manuel/ qui n'est autre que la Doc officielle PHP que vous pouvez trouver sur le site officiel :
http://www.php.net et je pointe les liens vers la Doc en ligne.
article_10.php
<?php
// ------------------------------------------------------------------------- //
// Affichage page par page (Array) //
// ------------------------------------------------------------------------- //
// Le 25/05/2003 à 23h28 par Guillaume JIGUEL (guillaume@gphp.net) //
// ------------------------------------------------------------------------- //
// http://www.gphp.net/articles,10.php //
// ------------------------------------------------------------------------- //
// Configuration
$nbr_page = 20; // Nombre d'affichage par page
$nmr_page = 10; // Nombre de Numéro par page
$style = 'font-size: 10px; color: black';
// Configuration
$dossier = 'manuel/'; // Nom du dossier ou se trouve le manuel php
$url = 'http://www.php.net/manual/fr/';
// Ouverture du dossier
$ouverture = opendir($dossier);
while ($fichiers = readdir($ouverture)){
// On selectionne seulement les fichiers
if (is_file($dossier.$fichiers) && $fichiers != "/"){
// On stocke les résultats dans un array()
$manuel[] = $fichiers;
$compteur++;
}
}
// Fermeture du dossier
closedir($ouverture);
// On calcule l'affichage par page, on met le cpt à zero si la page est vide, sinon il prend la valeur de $page
if (empty($_GET['page'])) $cpt = 0;
else $cpt = $_GET['page'];
$max_page = $cpt + $nbr_page;
$page = $_GET['page'];
// On défini le nombre max
$max = $compteur-1;
// On affiche le contenu de la page demandée
while ($cpt < $max_page){
$fonction = $manuel[ $cpt ];
$lien_fonction = str_replace(".html", ".php", $fonction);
$aff_fonction = str_replace(".html", "", $fonction);
echo "<a href=\"".$url.$lien_fonction."\">".$aff_fonction."</a><br />\n";
$cpt++;
}
// On affiche le lien pour la page précedente
if ($page >= $nbr_page){
echo "<a href=\"".$PHP_SELF."?page=".($page-$nbr_page)."\" style=\"".$style."\"><<</a> \n";
}
// On calcule le numéro des pages
if (!isset($page)) $page = 0;
if ($page >= ($nmr_page * $nbr_page)){
$cpt_fin = ($page / $nbr_page) + 1;
$cpt_deb = $cpt_fin - $nmr_page + 1;
}else{
$cpt_deb = 1;
$cpt_fin = (int)($max / $nbr_page);
if (($max % $nbr_page) != 0) $cpt_fin++;
if ($cpt_fin > $nmr_page) $cpt_fin = $nmr_page;
}
for ($cpt = $cpt_deb; $cpt <= $cpt_fin; $cpt++){
if ($cpt == ($page / $nbr_page) + 1){
echo "<span style=\"".$style."; font-weight: bold\"> ".$cpt." </span>\n";
}else{
echo " <a href=\"".$PHP_SELF."?page=".(($cpt-1)*$nbr_page)."\" style=\"".$style."\">".$cpt."</a> \n";
}
}
// On affiche le lien pour la page suivante
if ($page + $nbr_page < $max){
echo " <a href=\"".$PHP_SELF."?page=".($page+$nbr_page)."\" style=\"".$style."\">>></a>\n";
}
?>
» Commentaires
Pas de commentaires.
Vous devez être connecté en tant que Membre pour pouvoir poster un commentaire, Inscrivez vous ici !