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

PHP & Base de données Discussion :

Système de pagination pour une galerie photo [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de Badaboumpanpan
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 202
    Points : 80
    Points
    80
    Par défaut Système de pagination pour une galerie photo
    Bonjour,

    Je suis entrain d'élaborer une galerie photo sur mon futur site, et je voudrais savoir la chose suivante:

    - j'utilise une base MySQL pour stocker le chemin de la photo, son intitulé et qq autres références;
    - je voudrais faire une présentation comme suit :
    en haut de la page : miniatures, en dessous la miniature sélectionnée en taille normale.

    Le site sera géré de la facon habituelle : >> galerie > nom_galerie > photos

    Ne sachant pas combien de photos sera contenue dans une galerie, c'est que ma page en PHP, gère d'elle-même la gestion des photos.

    Je m'explique : imaginons que pour la galerie A j'ai 25 photos, la page PHP créera 3 pages car chaque page ne pourra contenir qu'au maximum 10 photos miniatures.

    Je ne sais pas si tout ça est bien clair, mais si vous m'avez suivi, est-ce que cela est réalisable ?

  2. #2
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    Citation Envoyé par Badaboumpanpan
    Je m'explique : imaginons que pour la galerie A j'ai 25 photos, la page PHP créera 3 pages car chaque page ne pourra contenir qu'au maximum 10 photos miniatures.

    Je ne sais pas si tout ça est bien clair, mais si vous m'avez suivi, est-ce que cela est réalisable ?
    Oui

    En utilisant la clause LIMIT de SQL
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  3. #3
    Membre régulier Avatar de Badaboumpanpan
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 202
    Points : 80
    Points
    80
    Par défaut
    Ok. Avec LIMIT, je vais pouvoir récupérer le nombre de photos souhaité par page.

    Mais comment vais-je pouvoir faire en sorte que ma page PHP puisse génèrer 5 pages si il faut ?

  4. #4
    Membre confirmé Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Points : 594
    Points
    594
    Par défaut
    tu fais evoluer la clause limit a chaque fois que tu avance d'une page.

    pour la page 1 dans l'url nb=0;



    pour la page 2 dans l'url nb=10;



    pour la page 3 dans l'url nb=20;
    If it's not broken, don't fix it.
    BiliBa Built on top of Zend Framework

  5. #5
    Membre régulier Avatar de Badaboumpanpan
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 202
    Points : 80
    Points
    80
    Par défaut
    Ok. C'est le truc du genre :

    page.php?nb=1

    Que l'on voit dans les url ?


    En gros, je dois faire plusieurs requêtes ?

  6. #6
    Membre confirmé Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Points : 594
    Points
    594
    Par défaut
    juste une mais qui evolue en fonction de nb.
    If it's not broken, don't fix it.
    BiliBa Built on top of Zend Framework

  7. #7
    Membre régulier Avatar de Badaboumpanpan
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 202
    Points : 80
    Points
    80
    Par défaut
    Genre avec un FOR :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    MYSQL_CONNECT(srv,user,pwd);
    MYSQL_SELECT_DB(db);
    
    $result = MYSQL_QUERY("SELECT * FROM images;");
    $number = MYSQL_NUM_ROWS($result);
    
    for($n=0;$n<$number;$n=$n+10) {
    	$requete = MYSQL_QUERY("SELECT * FROM images LIMIT $n/10;");
    	ma page de présentation;
    }
    Mais comment fait-on pour que le numéro soit retourné ?

    J'ai vu truc comme , c'est une piste ?

  8. #8
    Membre confirmé Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Points : 594
    Points
    594
    Par défaut
    Plutot qqch comme ca.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    MYSQL_CONNECT(srv,user,pwd);
    MYSQL_SELECT_DB(db);
     
    	$requete = MYSQL_QUERY("SELECT * FROM images LIMIT $n, 10;");
    	ma page de présentation;
            lien suivant : <a href="index.php?n=<?echo $n+10;?>">suivant</a>
    If it's not broken, don't fix it.
    BiliBa Built on top of Zend Framework

  9. #9
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Points : 1 071
    Points
    1 071
    Par défaut
    J'
    ai vu truc comme Code :
    $_GET['n'];
    , c'est une piste ?
    complètement

    si tu appelle une page par index.php?n=2
    dans cette même page, $_GET['n'] sera égale à 2
    Articles sur developpez.com
    - Gestion des exceptions avec PHP5
    - Chiffrement et hash en PHP contre l'attaque Man in the middle
    - Aedituus - Espace membre sécurisé en PHP5

  10. #10
    Membre régulier Avatar de Badaboumpanpan
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 202
    Points : 80
    Points
    80
    Par défaut
    [erratum] CA FONCTIONNE, J'AVAIS OUBLIE DE CHANGER LA CIBLE href [erratum]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?
    /*_____________________CONNEXION__________________________*/
    MYSQL_CONNECT("srv", "user", "pass");
    MYSQL_SELECT_DB(db);
     
    $requete = MYSQL_QUERY("SELECT name FROM image LIMIT $n,5;");
    $m=$n+4;
    $id=$n+1;
     
    for($i=$n;$i<=$m;$i=$i+1) {
    	$result = MYSQL_QUERY("SELECT name FROM image WHERE id=$id");
    	$row = mysql_fetch_assoc($result);
    	${$img.$i} = $row["name"];
    	echo ${$img.$i}."<br>";
    	$id=$id+1;
    	};
    ?>
    lien suivant : <a href="index.php?n=<?echo $n+5;?>">suivant</a>
    <?
    MYSQL_CLOSE();
    ?>
    Ca fonctionne sans limite, il y a 11 images (donc n=0, n=5 et n=10), et j'accède à la page : index.php?n=15 , index.php?n=20 , index.php?n=25 , etc

    Comment je peux limiter ça ?

  11. #11
    Membre régulier Avatar de Badaboumpanpan
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 202
    Points : 80
    Points
    80
    Par défaut
    J'ai concoté ça !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <?
    /*_____________________CONNEXION__________________________*/
    MYSQL_CONNECT("srv", "user", "pass");
    MYSQL_SELECT_DB(db);
     
    $requete = MYSQL_QUERY("SELECT name FROM image LIMIT $n,5;");
    $m=$n+4;
    $id=$n+1;
     
    for($i=$n;$i<=$m;$i=$i+1) {
    	$result = MYSQL_QUERY("SELECT name FROM image WHERE id=$id");
    	$row = mysql_fetch_assoc($result);
    	$img[$i] = $row["name"];
    	if (!empty($img[$i])) {
    		echo $img[$i]."<br>";
    		$id=$id+1;
    	}else{
    	$i=$m;
    	};
    };
     
    $n=$n+5;
     
    if (!empty($img[$m])) {
    	echo 'lien suivant : <a href="index.php?n='.$n.'>suivant</a>';
    };
     
    MYSQL_CLOSE();
    ?>
    Ca le fait ? Ou on peut optimiser encore ?

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

Discussions similaires

  1. pagination pour une galerie sans base de donnée
    Par VIRGINIE87 dans le forum Langage
    Réponses: 10
    Dernier message: 09/03/2010, 10h04
  2. Réponses: 2
    Dernier message: 24/01/2010, 22h39
  3. Pagination de photos pour une galerie
    Par valebl dans le forum Langage
    Réponses: 2
    Dernier message: 24/04/2008, 00h20
  4. [SQL] Pagination d'une galerie photo
    Par Sofute dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 26/03/2008, 19h13
  5. [Système] Faire une galerie photo simple
    Par titor dans le forum Langage
    Réponses: 10
    Dernier message: 24/06/2006, 21h02

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