Xo :// easy paging

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 637 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

cs_Nox
Messages postés
415
Date d'inscription
mardi 3 avril 2001
Statut
Membre
Dernière intervention
26 avril 2008
-
cool

et t'a un site où on peut voir le resultat ? :P:P
LocalStone
Messages postés
515
Date d'inscription
mercredi 19 mars 2003
Statut
Membre
Dernière intervention
1 mars 2009
-
J'allais poster la même source !!! :-p, et on a eu exactement la même idée : le code est quasiement identique ! Tu es donc aussi intelligent que moi : 10/10.
cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
mdr LocalStone ^^
c'est en effet une bonne idée, on doit tjs recommencer un système de navigation, c'est énervant. bien donc :-) 8/10
thepopolinux
Messages postés
245
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
21 juin 2004
-
Hum ... très bien mon gars !

10/10
@++
randiox
Messages postés
17
Date d'inscription
mercredi 30 avril 2003
Statut
Membre
Dernière intervention
6 février 2005
-
Yo, tres sympatique, je n'avais pas eu cette idée et je recommencais tout a chaque fois, comme un nul :(
Ben merci j'ai pas testé, mais j'ai lu, et ca m'a l'air de tenir la route ;)

++ RDX

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.