Jump to content
Sign in to follow this  
deepo

[php] multipage

Rate this topic

Recommended Posts

bonjour a tous

j'aimerais réaliser l'affichage d'une galerie d'image ( ça c'est fait )

mais j'aimerais avoir ( on va dire 30 miniatures par pages )

le nombre de pages ainsi que les liens vers les pages précédentes et suivantes

je travaille en php4 et une base mysql ( en local pour test avec easyphp )

en fait j'aimerais la même chose que ce qui s'affiche ici en bas de page des forum :rolleyes:

ce serait sympa merci

a++

Share this post


Link to post
Share on other sites

Bon, on va tenter de faire simple ;)

Tu commences par définir le numéro de ta page (s'il n'est pas précisé en GET, alors on est sur la page 1, sinon, on est sur la page précisée) :

	if(!isset($_GET['page']) || $_GET['page'] < 2)
 $page = 1;
else
 $page = $_GET['page'];

On définit ensuite le nombre de résultats que l'on veut voir affichés par page :

	$nombre_resultats = 30;

On détermine ensuite l'index du premier résultat que l'on veut : sur la première page, ce sera zéro, sur la seconde 30, sur la troisième 60, etc.

	$debut = ($page-1)*$nombre_resultats;

Il ne reste plus qu'à effectuer la requête :

SELECT SQL_CALC_FOUND_ROWS * FROM ta_table ORDER BY Date DESC LIMIT $debut, $nombre_resultats

Avec une petite particularité, le SQL_CALC_FOUND_ROWS,

qui permettra de connaître le nombre total de résultats qu'aurait retourné la requête, sans utiliser de limite.

Tu exploites bien sûr les résultats de la requête comme tu l'entends.

On va donc par la suite, déterminer le nombre d'entrées totales, correspondant à ta requête :

	$num_rows = mysql_result(mysql_query("SELECT FOUND_ROWS()"), 0);

On a par conséquent la variable $num_rows, qui contient le nombre TOTAL de lignes pour ta requête.

Il ne reste plus qu'à afficher éventuellement les 'page précédente', et 'page suivante' :

	if($_GET['page'] != 1)
 echo '<a href="page.php?page='.$_GET['page']-1.'">Page précédente</a>';
if($page*$nombre_resultats < $num_rows)
 echo '<a href="page.php?page='.$_GET['page']+1.'">Page suivante</a>';

J'éditerai sans doute par la suite, pour expliquer comment gérer les (page 1, page 2, etc).

Edit : Je viens de rédiger cet article : Gestion de la pagination.

Edited by captain_torche

Share this post


Link to post
Share on other sites

salut Captain

merci beaucoup c'est clair et précis

je vais mettre tout ça en pratique et me pencher sur la gestion des pages

bon lundi ( de repos .. :lol: )

a++

deepo

Share this post


Link to post
Share on other sites

salut

pour info mon histoire des pages multiples fonctionnent

le pb est donc résolu

merci

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...