Xo :// easy paging

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 601 fois - Téléchargée 26 fois

Contenu du snippet

J'en avais ras le bol de membeter avec le paging a chaque fois, donc paf deux fonctions pr simplifier tout ca.

page_a_query($items_nb, $items_per_page, $page_current)

Qui vous donne le nombre de page de votre paging, ainsi que les positions a laquelle votre page commence et sur quelle longueur.

Admettons que vous ayez a faire un paging a partir de 30 items, a raison de 10 par page, et que vous etes a la page 2

$lala = array();
$lala = page_a_query(30, 10, 2);

$lala[0] # le nombre de page en tout, dans notre exemple 3
$lala[1] # la position a laquelle commence la page en cours
$lala[2] # la longueur de la page

Apres ca peut donner quelque chose comme ca:
$qry_news = mysql_query("SELECT news_id, news_pdate, news_member_id, news_title FROM news ORDER BY news_pdate DESC LIMIT " .$lala[1]. "," .$lala[2]. "");

Je sais pas trop comment expliquer mais vous avez du comprendre ...

Et l'autre fonction qui permet de faire le menu de votre paging:

menu_a_paging($page_nb, $page_current, $str_bef_pg, $str_aft_pg, $str_bef_cpg, $str_aft_cpg, $str_del)

$str_bef_pg est ce qui sera placé avant le numéro de la page dans le menu
$str_aft_pg est ce qui sera placé apres le numéro de la page dans le menu
$str_bef_cpg est ce qui sera placé avant le numéro de la page, si celle ci est la page en cours
$str_bef_cpg est ce qui sera placé apres le numéro de la page, si celle ci est la page en cours
$str_del est ce qui sera placé entre les numéros de pages

Qui vous renvoie directement votre menu de paging du style:
"Pages 1, 2, 3"

Ca s'utilise comme ceci:

menu_a_paging($paging[0],$page,"<A href=index.php?act=edit&page=<page_id>$_usid>","</A>","<B>","</B>"," . ");

<page_id> sera remplace par la fonction par le numero de la page.

Cest pas super clair :/ Mais je suis sur que vous avez compris :)

Source / Exemple :


function page_a_query($items_nb, $items_per_page, $page_current)
{		
	$mypaging 	= array();
	$page_nb	= 0;
	
	if($page_current == 1 || $page_current == 0) 	{ $items_startpos = 0; }
	else											{ $items_startpos = (($page_current-1) * $items_per_page); }
	
	$page_nb	= ceil($items_nb / $items_per_page);
	
	$mypaging[0] 	= $page_nb;
	$mypaging[1] 	= $items_startpos;
	$mypaging[2] 	= $items_per_page;
	
	return $mypaging;		
}

function menu_a_paging($page_nb, $page_current, $str_bef_pg, $str_aft_pg, $str_bef_cpg, $str_aft_cpg, $str_del)
{
	$html_menu = "";		
	for($i=1;$i<=$page_nb;$i++)
	{
		$html_menu .= str_replace("<page_id>","$i","$str_bef_pg");
		if($i == $page_current) { $html_menu .= "$str_bef_cpg" .$i. "$str_aft_cpg"; }
		else					{ $html_menu .= "$i"; }
		$html_menu .= "$str_aft_pg";	
		if($i!=$page_nb) { $html_menu .= "$str_del"; }		
	}
	
	return $html_menu;
}

Conclusion :


Voili voilou

A voir également

Ajouter un commentaire

Commentaires

Commenter la réponse de cs_Nox

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.