Pagination

mit0910 Messages postés 29 Statut Membre -  
 mit0910 -
Bonjour,

bonjour les amis ,

comment réaliser une pagination dans une page d'affichage,

le langage c'est php,

aidez moi svp

1 réponse

jean-charles.gibier Messages postés 34 Statut Membre 9
 
Bonjour
Pouvez vous préciser les fonctions de votre "pagination" ?
Comme ce terme désigne notament une ancienne technique de gestion de la mémoire ça me rend un peu perplexe :-)
0
mit0910
 
non non rien avoir avec le OS ,
c'est quand vous avez bcp de donneés à affichier mais la page sur laquelle vous vaullez l'affiche ne supporter pas tous ca exemple:les livre d'or,...
0
jean-charles.gibier Messages postés 34 Statut Membre 9 > mit0910
 
Si c'est pour installer un livre d'or béton et sécure il vaut mieux rechercher des scripts sur

http://www.phpscripts-fr.net/

Sinon voici un morceau de code qui ressemble à ça mais sans garantie (ce n'est ni lisible, ni propre, ni bien commenté, de plus j'utilise les globales $_POST comme variables ce qui n'est pas indiqué
c'est donc juste pour étudier le principe, pour dépanner quoi :-)

Code à mettre dans la page de présentation de la pagination :


<?php

include "list-struct.php";
// -------------------  pour info ----------------------
// Pagination par N de pages 
// $count -> nb de documents total 
// $nb_titles_par_page -> nb de de doc par pages 
// \$nb_pages_par_seg -> nombre de numéros de page à présenter 
// \$vars -> variables recuperees par $_POST / $_GET
//  Important: la variable \$vars['CUR_PAGE'] contiendra le numéro de la page courante. 
// ------------------- fin pour info ----------------------
 
print list_struct ( $count, $nb_titles_par_page, $nb_pages_par_seg, $vars)."\n" ;

print "imprimer la ou les pages courante...";

?>



Dans list-struct.php :


<?php


function list_struct ( $nb_titles_total, $nb_titles_par_page, $nb_pages_par_seg, $vars) 
{
$buf = "";
$reqbody = "";

if (!isset( $vars['CUR_PAGE'] )) {
	$cur_page = 0; 
	} else {
	$cur_page = $vars['CUR_PAGE']; 
	}

foreach($vars as $key=>$val) {
	if ($key == "CUR_PAGE") continue;
    if ($reqbody !== "") $reqbody.= "&";
    $reqbody.= $key."=".urlencode($val);
    }
	

$nb_pages_total = ceil($nb_titles_total / $nb_titles_par_page);

$nb_segs_total = ceil($nb_pages_total / $nb_pages_par_seg);

$cur_seg = floor($cur_page / $nb_pages_par_seg );

$is_prev_seg = ($cur_seg > 0) ? 1 : 0;

$is_next_seg = ($cur_seg + 1 < $nb_segs_total) ? 1 : 0;

$offset_deb_page =	$cur_seg * $nb_pages_par_seg;

$offset_fin_page =	min (($offset_deb_page + $nb_pages_par_seg), $nb_pages_total);

if ($nb_segs_total < 1) {
	return "";
	}

$buf .= "<br /><div style='font-weight: lighter; text-align: center; width: 100%;'>\n";

if ($is_prev_seg) {
	$buf .= "<a href='?".$reqbody."&CUR_PAGE=".($cur_page-$nb_pages_par_seg)."'>&nbsp;<<&nbsp;</a>\n";
	}

for ($i = $offset_deb_page; $i < $offset_fin_page ; $i ++) {
	$buf .= (($i == $cur_page) ? "&nbsp; ".$i  ." &nbsp;" : "<a href='?".$reqbody."&CUR_PAGE=".$i."'>&nbsp; $i &nbsp;</a>\n");
	}	
	
if ($is_next_seg) {
	$buf .= "<a href='?".$reqbody."&CUR_PAGE=".$offset_fin_page."'>&nbsp;>>&nbsp;</a>\n";
	}
	
$buf .= "<br /></div>\n";

return $buf;	
}

?>
0
mit0910 > jean-charles.gibier Messages postés 34 Statut Membre
 
merci bcp mon ami jean-charles.gibier
0