edito
forum (83 203)
making of
raccourcis PS
coups de coeur (6)
archives CDC (26)
bétisier (28)
plan du site
infos légales

 


 

Devenez awares ! Et essayez de survivre.




aperçu
 

 

login | logout
gérez votre profil
devenez membre
membres (7498)
annivs (2599)
awares (60)
mickeys (59)
notables (128)
modérateurs (8)
votre vie privée

 

 

amis (39)
gfx français (61)
divers (936)
pixel art (94)
illustration (117)
portails (17)
ressources (31)
flash (324)
3D (31)

proposez votre site
dernières entrées
aléatoire (1652)
quicklist
top 10






























 

 

stats publiques
infocentres
référents (8 977)
ref quicklist (8 977)
visiteurs uniques
awards

6 987 861 hits
 




our écrire 50 lignes de texte là où il y a tout juste de la place pour 8, vous avez trois solutions : écrire très petit ou implémenter un multipage. La troisième solution est un scroll layer, sujet que nous éviterons éhontément dans ce tuto. Le multipage vous permet d'afficher des informations par page, il permet généralement d'aller directement aux 5 ou 10 premières pages, de revenir à la précécente et d'aller à la suivante. Il se présente généralement sous cette forme :

( 69 commentaires )
prev 1 2 3 4 5 next

Celui que nous allons monter est en cela interactif ques les liens sur les pages non consultables ne sont pas cliquables : par exemple s'il n'y a que 3 pages, les pages 4 et 5 ne sont pas cliquables. Si vous êtes sur la première page, le lien PREV n'est pas cliquable, etc.


 

Pour rendre opérationnel votre multipage, vous avez besoin essentiellement de deux données :

  • le nombre total d'enregistrements à afficher.
  • le nombre d'enregistrements par page.


  • Supposons que vous vouliez afficher des commentaires dans une borne. Vous disposez d'une table COMMENTAIRES. Le script suivant initialise ces deux variables plus d'autres utiles par la suite, il se place juste avant le multipage :

    <?
       include ("../connexion_a_la_base.php"); // CONNEXION MYSQL
       $link = mysql_connect ($host,$user,$password); // INITIALISATION DE LA CONNEXION
       mysql_select_db($bdd, $link);

       $req="select * from commentaires";
       $res=mysql_query($req, $link);
       $nombre_commentaires=mysql_numrows($res);
       $nombre_par_page=5;
       $nombre_de_pages=intval(($nombre_commentaires-1)/$nombre_par_page)+1;
       if ($position=="") $position=0;
       $page_courante=intval(($position/$nombre_commentaires)*$nombre_de_pages)+1;
    ?>


     

    Dans notre exemple, le fonctionnement du multipage est le suivant : nous allons afficher les commentaires par page de 5. Un seul paramètre est transmis à la page pour afficher les commentaires désirés : la variable $position qui précise à partir de quel enregistrement on doit afficher les 5 suivants, le premier de la page courante en somme : LIMIT $position,$nombre_par_page.

    Le script d'affichage du multipage, placé juste après celui d'initialisation des variables ressemble à ça :

    <?
       // AFFICHAGE DU NOMBRE DE COMMENTAIRES
       print ("<center>");
       print ("( $nombre_commentaires commentaire");
       if ($nombre_commentaires>1) print ("s");
       print (" )<br>");

       // AFFICHAGE DU PREV
       if ($page_courante!="1")
       {
          $nouvelle_position=(($page_courante-1)*$nombre_par_page)-$nombre_par_page;
          print ("<a href=cette_page.php?position=$nouvelle_position>");
       }
       print ("prec");
       if ($page_courante!="1") print ("</a>");
       print (" ");

       // AFFICHAGE DES PAGES 1 A 5
       $i=1; while ($i<6)
       {
          if ($nombre_de_pages>($i-1) && $page_courante!="$i")
          {
             $new_pos=$nombre_par_page*($i-1);
             print ("<a href=cette_page.php?position=$new_pos>");
          }
          print ("$i");
          if ($nombre_de_pages>($i-1) && $page_courante!="$i") { print ("</a>"); }
          print (" ");
          $i++;
       }

       // AFFICHAGE DU NEXT
       if ($nombre_de_pages>$page_courante)
       {
          $nouvelle_position=(($page_courante+1)*$nombre_par_page)-$nombre_par_page;
          print ("<a href=cette_page.php?position=$nouvelle_position>");
       }
        print ("suiv");
       if ($nombre_de_pages>$page_courante) print ("</a>");

       print ("<br><br></center>");
    ?>


     

    Votre multipage est enfin opérationnel. En dessous, vous n'avez plus qu'à afficher partiellement vos commentaires avec un "SELECT * FROM COMMENTAIRES ORDER BY DATE DESC LIMIT $position,$nombre_par_page".

    Ce principe est généralisé à l'ensemble de ce site.


    Tuto proposé par :

    piregwan (sympatisant mi (..))
    34 ans
    piregwan_AT_piregwan.com
    http://www.piregwan.com


    12530 visites




     

    tip, 23 06 2009 à 00:11

    merci bcp, je l'ai utilisé avec bcp de facilité!


    tip


    Issa, 29 04 2009 à 18:39

    J'avoue etre très impressionné par le travail ke vous avez effectué...de toute ma vie,je dis bien de toute ma vie,jamais je n'ai vu un truc aussi merveilleux....je vous tire mon chapeau
    mon mail est: messie25_AT_live.fr
    je suis en première année webmaster et je crois ke depuis ma visite sur ce site super mega genial,vous etes mon idole à compter de maintenant....


    Issa


    timpisteur, 14 04 2008 à 10:44

    merci facile a mettre en place, et a modifier, c'est cool


    timpisteur


    Roys, 05 06 2004 à 15:29

    Oups j'ai été un peu vite et j'ai oublié le merci


    Roys


    Roys, 05 06 2004 à 15:09

    ca fonctionne bien sauf ke je l'utilise dans un pseudo frame. Donc comme lien je met
    print ("<a href=main.php?rub=6,p osition=$nouvelle_pos ition>");
    chaque fois ke je clique sur la page suivante il me recharge la premiere.Je comprend pas bien
    Qqun pourrait il m'expliquer?



    Roys


    ibas, 02 04 2003 à 11:56

    bah franchement c super bien expliqué et vachement simple à réutiliser et remettre à sa sauce...^^
    merci mr piregwan...^^


    ibas (pilier de bar (..))
    29 ans (rouen)
    ibas_AT_benzor.com
    http://www.ibasgiz.com


    ( 20 commentaires )
    << 1 2 3 4 5 6 7 8 9 10 11 12 >>

     











    P I R E G W A N . C O M
    interface, développement & hébergement - piregwan 1998-2004




    forum | infocentres | recherche | t-shirts | photos


    généré en 1.139 secondes