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 :

Gestion de galerie Photo


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Gestion de galerie Photo
    Bonjour, je post pour la première fois sur ce forum, car j'ai un soucis au niveau de la gestion de la galerie.
    En gros pour simplifier, j'ai une pagination automatique qui dit qu'au bout de 16 photo je crée une nouvelle page.
    C'est image son stockées dans un tableau.
    Si le nombre de photo (nbpics) dépasse 16, je crée un lien en bas qui redirige vers la page=2.

    Je recupéré la valeur 2 avec le get, et je traite de facon à ce qui recommence à la bonne image.
    Mais mon problème est que dans tout les cas il effectue le tableau de la valeur de I debut que je lui est donné, jusqu'à +16.
    Donc si j'ai 32 photos, il n'y à pas de soucis, il va me créer 2 pages.
    Mais si j'ai par exemple 22 photos, il va créer 2 pages, 1 pleine de 16 images, et l'autre de 6 images. Il y aura ensuite 10 liens erreur vers des images inexistante (vu qu'elle n'existe pas).

    Mon problème est que je voudrais qu'il s'arrete à 6 par exemple : 22 images donc 1 pages pleines de 16 images et la page 2 avec seulement 6 images.
    Voila le passage du code qui nous interresse. Avez vous une solution à ce problème?

    En avance, Merci.
    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
    // On test
    if(isset($_GET['page'])) { 
    if($_GET['page'] < 2) { $debut = 0; $fin = 15; }
    else
    // On donne une valeur a $debut
    {$debut = ($_GET['page'] - 1) * 16 - 1;
    // On donne une valeur à $fin
    $fin = $debut + 16;}}
     
     
     
    // on défini le nombre de colonne sur lesquelles vont s'afficher nos miniatures  
    $nbcol=4;  
    // on compte le nombre de miniatures  
    $nbpics = count($tableau); 
     
    $imageParPage=16; //Nous allons afficher 16 images par page.
     
    // si on a au moins une miniature, on les affiche toutes  
    if ($nbpics != 0) { 
    echo '<table align=center>'; 
    for ($i=$debut; $i<=$fin; $i++){ 
    if($i%$nbcol==0) echo '<tr>';

  2. #2
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut
    Un truc dans ce gout la, ca me parait plus logique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // init
    $imageParPage = 16;  
    $nbcol=4;   
    $nbpics = count($tableau); 
     
    if (!isset($_GET['page'])) $_GET["page"] = 1;
    $debut = ($_GET["page"]*$imageParPage)-$imageParPage;
    $fin = $_GET["page"]*$imageParPage;
    Et pour l'erreur, soit tu fais un truc pas bien, tu utilises le @ pour virer les messages d'erreur, soit tu fait un test d'existence de l'entree dans ton tableau genre isset, ou != NULL.
    Spécialité : Développement WEB
    Indispensables : Doc PHP ~ Doc MySQL ~ w3schools ~ validateurs W3C ~ Google Adwords ~ PHP-Tester


  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Pb résolu
    Je viens de finir de resoudre le problème, merci pour votre aide.
    Voici la solution (extrait du script.php)
    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
    // On test
    if(isset($_GET['page'])) { 
    if($_GET['page'] < 2) { $debut = 0; $fin = 15; }
    else
    // On donne une valeur a $debut
    {$debut = ($_GET['page'] - 1) * 16;
    // On donne une valeur à $fin
    $fin = $debut + 4;}}
    if ($fin >= count($tableau)) $fin= count($tableau)-1;
    // on défini le nombre de colonne sur lesquelles vont s'afficher nos miniatures  
    $nbcol=4;  
    // on compte le nombre de miniatures  
    $nbpics = count($tableau); 
     
    // si on a au moins une miniature, on les affiche toutes  
    if ($nbpics != 0) { 
    echo '<table align=center>'; 
    for ($i=$debut; $i<=$fin; $i++){ 
    if($i%$nbcol==0) echo '<tr>'; 
    // pour chaque miniature, on affiche la miniature munie d'un lien vers la photo en taille réelle 
    echo  '<td><a href="../picsmoy/' , $tableau[$i] , '" target="blank"><img src="../minimoy/' , $tableau[$i] , '" alt="Image" "border=0"/></a></td>';

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

Discussions similaires

  1. plugin Colorbox. Gestion de galeries photos
    Par gui80 dans le forum jQuery
    Réponses: 1
    Dernier message: 18/02/2010, 21h24
  2. [Galerie] Gestion galerie photo php
    Par Djludo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 15/11/2007, 19h24
  3. [GD] Erreur dans galerie photo : Call to undefined function: imagecreatefromjpeg()
    Par philippedeletree dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 21/02/2006, 22h51
  4. Galerie photo en ASP
    Par cyrill.gremaud dans le forum ASP
    Réponses: 11
    Dernier message: 16/01/2006, 10h44
  5. Galerie Photo
    Par bolo dans le forum ASP
    Réponses: 22
    Dernier message: 25/10/2005, 15h33

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