IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

pagination : barre de navigation


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 213
    Points : 104
    Points
    104
    Par défaut pagination : barre de navigation
    Bonsoir @ tous,
    J'ai actullement une requete qui me permet d'avoir l'affichage de tout ce qu'il y a dans ma base (une galerie d'images)

    j'ai donc ma requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $query_rs_categorie = "SELECT ID_image, ID_categorie, titre, commentaire, URL_vignette FROM galerie WHERE ID_categorie = '$cat'";
    $rs_categorie = mysql_query($query_rs_categorie, $site) or die(mysql_error());
    $totalRows_rs_categorie = mysql_num_rows($rs_categorie);
    et l'affichage du resultat s'effectue a peu près comme ca (j'ai enlevé du code html pour pas trop charger le post)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php 
    $cpt = -1; 
    while ($row_rs_categorie = mysql_fetch_assoc($rs_categorie)) 
    { 
    $cpt ++ ; 
    if ($cpt % 4 == 0) { 
    echo "<a href=\"affichage_image.php?ID_image=".$row_rs_categorie['ID_image']."&categorie=".$cat."\"> <img border=\"0\" src=\"images_vignettes/".$row_rs_categorie['URL_vignette']."\" alt=\"". $row_rs_categorie['titre']."\" /></a>" ; 
    }else{ 
    echo "<a href=\"affichage_image.php?ID_image=".$row_rs_categorie['ID_image']."&categorie=".$cat."\"> <img border=\"0\" src=\"images_vignettes/".$row_rs_categorie['URL_vignette']."\" alt=\"". $row_rs_categorie['titre']."\" /></a>" ; 
    } 
    } 
    ?>
    Jusqu'ici, tout marche a merveille.
    Mais je voudrais apporter une petite amélioration :
    Je souhaiterai que si le resultat de la requete est superieur à 12 alors un bouton "suivant" permette de découvrir les autres.
    Pour résumer je souhaiterai faire une barre de navigation du "page précédente, page suivante".
    j'ai tenté d'ajouter un Limit 12,0 dans a requete mais ca ne me sort que les douze premier resultat (logique), et je n'arrive pas à aller plus loin.
    Si vous aviez une idée....
    Merci d'avance.

  2. #2
    Membre confirmé Avatar de GregPeck
    Inscrit en
    Novembre 2005
    Messages
    530
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 530
    Points : 540
    Points
    540
    Par défaut
    Avec ce code là, normalement, tu n'a qu'a jouer sur la variable $Page pour afficher tel ou tel page.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $NbImagesParPage = 12;
     
    $query_rs_categorie = "SELECT ID_image, ID_categorie, titre, commentaire, URL_vignette FROM galerie WHERE ID_categorie = '$cat' LIMIT ".($NbImagesParPage*($Page-1)).",".($NbImagesParPage*$Page);
    Après il ne te reste plus qu'a faire des liens vers cette même page avec une valeur pour $Page qui s'incrémente ou se décrémente.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 310
    Points : 393
    Points
    393
    Par défaut
    Tu pourrais aussi effectuer la requête une seule fois pour obtenir tous les enregistrements et les stocker dans un tableau que tu enregistres dans une variable de session. Quand tu arrives à l'affichage, tu utilises le tableau.

    Ça évite d'effectuer une requête à chaque changement de page.

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 213
    Points : 104
    Points
    104
    Par défaut
    voici ce que je viens de faire en m'inspirant de ton code GregPeck:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $NbImagesParPage = 12;
    $Page = 0;
    $query_rs_categorie = "SELECT ID_image, ID_categorie, titre, commentaire, URL_vignette FROM galerie WHERE ID_categorie = '$cat'LIMIT ".($NbImagesParPage*$Page).",".$NbImagesParPage;
    echo $query_rs_categorie;
    $rs_categorie = mysql_query($query_rs_categorie, $site) or die(mysql_error());
    $totalRows_rs_categorie = mysql_num_rows($rs_categorie);
    j'ai défini la variable $page à zéro, et modifié légèrement ce qu'il y a avait apprès le LIMIT.

    Balu
    je ne connait pas cette technique de sauvegarder un array dans un tableau, je vais approffondir. mais ca ne surcharge pas le serveur si la base est conséquente ?

    En tout cas merci pour vos conseils.
    je vous tiens au courant dès que ca marche, ou dès que je n'ai plus de solutions.

    @ toute

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 213
    Points : 104
    Points
    104
    Par défaut
    bon bah a priori ca marche !
    voici le code que je viens de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $NbImagesParPage = 12;
    if (isset ($_GET['page']))
    {
    $Page = $_GET['page'] + 1;
    }
    else{$Page = 0;}
    $query_rs_categorie = "SELECT ID_image, ID_categorie, titre, commentaire, URL_vignette FROM galerie WHERE ID_categorie = '$cat'LIMIT ".($NbImagesParPage*$Page).",".$NbImagesParPage;
    Il ne me reste plus qu'a gérer les cas suivants :
    - créer le bouton précédent
    - n'afficher les boutons que si nécessaire.

    je vous tiendrai au courant.

    Merci a tous pour votre aide.

    @+

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 310
    Points : 393
    Points
    393
    Par défaut
    Citation Envoyé par jexl
    Balu
    je ne connait pas cette technique de sauvegarder un array dans un tableau, je vais approffondir. mais ca ne surcharge pas le serveur si la base est conséquente ?
    Tu serialize le tableau au moment du stockage et tu unserialize quand tu récupères l'information.

    Malheureusement, je n'ai pas de réponse s'il y a surcharge du serveur web à cause d'un grand nombre de données.

    Je dirais que ça dépend du système à développer.

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 213
    Points : 104
    Points
    104
    Par défaut
    Merci beaucoup pour la fonction serialize, je vais approffondir ca dès maintenant.
    @+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 12/08/2006, 01h36
  2. Probleme ascensseur / barre de navigation dans une page
    Par bixi dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 12/12/2005, 14h56
  3. créer une barre de navigation déroulante aide
    Par max45 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 28/11/2005, 20h57
  4. [FLASH MX2004] Barre de navigation
    Par Angeldu74 dans le forum Flash
    Réponses: 2
    Dernier message: 24/06/2005, 09h37
  5. [JSP][Barre de navigation] Gestion du bouton precedent
    Par lando dans le forum Servlets/JSP
    Réponses: 11
    Dernier message: 09/09/2003, 16h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo