Accueil > > > AFFICHAGE DE RÉSULTATS MYSQL SUR PLUSIEURS PAGES
AFFICHAGE DE RÉSULTATS MYSQL SUR PLUSIEURS PAGES
Information sur la source
Description
bon voilà, demandé par cercleaventure sur le forum, une fonction qui gère l'affichage des liens "page suivante", "précédente", ... pour couper l'affichage du résultat d'une grosse requete
voici un petit exemple pour montrer ma fonction dans ce contexte:
Source
- function gestion_pages($d,$l,$lien,$nb_total){
- //$d: premier enregistrement affiché
- //$l: nombre d'enregistrements affichés par page
- //$lien: lien utilisé pour la page actuelle (attention les parametes $d et $l ne doivent pas etre utilisés)
- //$nb_total: nombre total d'enregistrements
-
- echo '<table width="100%" cellspacing="0" cellpadding="2" border="0"><tr><td width="33%" nowrap align="left" valign
-
- ="bottom">';
- $debut=$d-$l;
- if(substr_count($lien,'?')==0)
- $lien.='?';
- else
- $lien.='&';
- if($debut<0) $debut=0;
- if($d>0){
- echo '<a href="'.$lien.'d=0&l='.$l.'">Première page</a>, ';
- echo '<a href="'.$lien.'d='.$debut.'&l='.$l.'">Page précédente</a>';
- }
- echo '</td><td width="33%" nowrap align="center" valign="bottom">';
- echo ceil($nb_total/$l)-ceil(($nb_total-$d)/$l)+1; //affiche le numéro de la page courante
- echo '/';
- echo ceil($nb_total/$l); //affiche le nb total de pages
- echo '</td><td width="33%" nowrap align="right" valign="bottom">';
- $suiv=$d+$l;
- if($d+$l<$nb_total){
- echo '<a href="'.$lien.'d='.$suiv.'&l='.$l.'">Page suivante</a>, ';
- echo '<a href="'.$lien.'d='.($nb_total-$l).'&l='.$l.'">Dernière page</a>';
- }
- echo '</td></tr></table>';
- }
-
-
-
- if(!isset($_GET[l])) $_GET[l]=20; //pour avoir que 20 enregistrements par page par exemple
- if(!isset($_GET[d])) $_GET[d]=0; //on affiche en premier l'enregistrement 0 (le premier) par défaut
-
- $req=mysql_query("select * from messages limit $_GET[d], $_GET[l];"); //ça c'est la requete de base pour sélectionner ce
-
- qu'on va afficher sur la page
-
- $nb_total=mysql_num_rows(mysql_query("select * from messages;")); //cette requete sert à compter le nombre d'enregistrement
-
- total (pour connaitre le nombre de pages au total)
-
- //$req va contenir tous les enregistrement à afficher
- //libre à vous d'en faire ce que vous voulez ici
- //un for pour les afficher, ...
- //c'est ici que vous gérez votre affichage des résultats
-
- //et en bas, on appelle ma fonction pour afficher les liens suivant la page ou on se trouve
-
- gestion_pages($_GET[d],$_GET[l],$_SERVER['REQUEST_URI'],$nb_total);
function gestion_pages($d,$l,$lien,$nb_total){
//$d: premier enregistrement affiché
//$l: nombre d'enregistrements affichés par page
//$lien: lien utilisé pour la page actuelle (attention les parametes $d et $l ne doivent pas etre utilisés)
//$nb_total: nombre total d'enregistrements
echo '<table width="100%" cellspacing="0" cellpadding="2" border="0"><tr><td width="33%" nowrap align="left" valign
="bottom">';
$debut=$d-$l;
if(substr_count($lien,'?')==0)
$lien.='?';
else
$lien.='&';
if($debut<0) $debut=0;
if($d>0){
echo '<a href="'.$lien.'d=0&l='.$l.'">Première page</a>, ';
echo '<a href="'.$lien.'d='.$debut.'&l='.$l.'">Page précédente</a>';
}
echo '</td><td width="33%" nowrap align="center" valign="bottom">';
echo ceil($nb_total/$l)-ceil(($nb_total-$d)/$l)+1; //affiche le numéro de la page courante
echo '/';
echo ceil($nb_total/$l); //affiche le nb total de pages
echo '</td><td width="33%" nowrap align="right" valign="bottom">';
$suiv=$d+$l;
if($d+$l<$nb_total){
echo '<a href="'.$lien.'d='.$suiv.'&l='.$l.'">Page suivante</a>, ';
echo '<a href="'.$lien.'d='.($nb_total-$l).'&l='.$l.'">Dernière page</a>';
}
echo '</td></tr></table>';
}
if(!isset($_GET[l])) $_GET[l]=20; //pour avoir que 20 enregistrements par page par exemple
if(!isset($_GET[d])) $_GET[d]=0; //on affiche en premier l'enregistrement 0 (le premier) par défaut
$req=mysql_query("select * from messages limit $_GET[d], $_GET[l];"); //ça c'est la requete de base pour sélectionner ce
qu'on va afficher sur la page
$nb_total=mysql_num_rows(mysql_query("select * from messages;")); //cette requete sert à compter le nombre d'enregistrement
total (pour connaitre le nombre de pages au total)
//$req va contenir tous les enregistrement à afficher
//libre à vous d'en faire ce que vous voulez ici
//un for pour les afficher, ...
//c'est ici que vous gérez votre affichage des résultats
//et en bas, on appelle ma fonction pour afficher les liens suivant la page ou on se trouve
gestion_pages($_GET[d],$_GET[l],$_SERVER['REQUEST_URI'],$nb_total);
Conclusion
voilà, n'hésitez pas à me poser des questions :p
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|