edito
forum (21 055)
making of
preview newsletter
photoshop shortcuts
plan du site
bétisier (24)
nouveautés (67)
mises à jour
bannières (92)
liste de diffusion
infos légales
 


 

Devenez awares ! Et essayez de survivre.




aperçu
 

 

login | logout
gérez votre profil
devenez membre
membres (2139)
anniversaires (796)
awares (349)
mickeys (343)
notables (83)
modérateurs (9)
votre vie privée

 

 

amis (22)
gfx français (58)
gfx autres (383)
pixel art (67)
ascii art (0)
paint/draw (97)
communautés (27)
portails gfx (16)
ressources (36)
flash (253)
3D (38)
java (2)

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










































999 sites
778 562 hits
 
 

à propos des tutos
tous les tutos (48)
rechercher un tuto

tutos aléatoires
572 780 hits

 

 

screen fonts
brushes
softwares
 
 
 

 

stats publiques
infocentres
référents (19012)
refs quicklist (19012)
visiteurs uniques
awards

10 112 805 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 = @mysqli_connect ($host,$user,$password); // INITIALISATION DE LA CONNEXION
       mysqli_select_db($link, $bdd);

       $req="select * from commentaires";
       $res=mysqli_query($link, $req);
       $nombre_commentaires=@mysqli_num_rows($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.

    piregwan
    5422 visites




     

    ebelay, 18 12 2001 à 17:26

    coment geres-tu ts les sites qui sont soumis ? dans des bd mysql ? dans ce cas la, à koi correspond chaque site dans la base et utilise tu phpmyadmin ou autre chose ?
    merci bocou,
    je suis un peu largué ...

    ( ya pas des endroits dans paris pour prendre des cours ?)


    ebelay (membre)


    piregwan, 18 12 2001 à 15:06

    salut

    quel genre de fonctionnalités voudrais-tu expliquées concernant les sites ? il y a un tuto compteurs et un sujet dans le forum concernant les référents. si c'est pour autre chose, aucun pb.

    a+


    piregwan (agent mad fana...)
    47 ans (chamb�ry, 73)
    krakoukas@piregwan-genesis...
    http://www.piregwan-gen...


    ebelay, 17 12 2001 à 19:37

    peux tu faire un tuto sur ton annuaire d'urls ou bien est-ce trop compliqué ? est-ce abordable pour un debutant en php ?



    ebelay (membre)


    piregwan, 02 12 2001 à 14:48

    salut

    la table n'a aucune importance. peu importent les enregistrements qu'elle contient, ça n'a aucune influence sur le principe du multipage.

    a+


    piregwan (agent mad fana...)
    47 ans (chamb�ry, 73)
    krakoukas@piregwan-genesis...
    http://www.piregwan-gen...


    moi, 02 12 2001 à 11:37

    quelqu'un peut il donner la table à un débutant?


    moi


    cob, 30 07 2001 à 22:59

    super terrible ! manque plus qu'à ajouter des @ devant les $ en cas de bdd vide et ça roule


    cob (guest star)
    46 ans (toulouse)
    respecto@free.fr
    http://www.greybox.tk


    ( 12 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 - piregwan 1998-2002




    toutes les bannières


    généré en 0.081 secondes