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 :

[Tableaux] Galerie de photos


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 64
    Points : 33
    Points
    33
    Par défaut [Tableaux] Galerie de photos
    Bonjour,


    Je voudrai créer une galerie de photo. Le problème ne réside pas dans l'affichage mais dans l'implémentation de cette galerie.

    En effet, tous les objets que je souhaite afficher sont en base de données. Par conséquent pour afficher page par page, cela s'avere etre simple. Cependant mon probleme est lorsque l'utilisateur clique sur une image, il peut la voir en "agrandi" (simple a faire) mais j'aimerai ajouter des boutons "image suivante" et "image precedente" autour. Et là je ne sais pas comment faire pour les afficher dynamiquement !!

    Je ne sais pas si je suis tres clair.
    Je vous remercie

  2. #2
    Membre habitué Avatar de poussinphp
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 428
    Points : 176
    Points
    176
    Par défaut
    Si tu gère ça par base de donnée tu devrais avoir un ID.

    Récupère le numéro de l'Id de l'image que tu affiche puis tu fais une requête :

    $precedent_id = $mon_id - 1;

    $query = 'select mon_image from album where id="'.$precedent_id'"';

    voila

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 64
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par poussinphp
    Si tu gère ça par base de donnée tu devrais avoir un ID.

    Récupère le numéro de l'Id de l'image que tu affiche puis tu fais une requête :

    $precedent_id = $mon_id - 1;

    $query = 'select mon_image from album where id="'.$precedent_id'"';

    voila

    Salut merci de ta réponse si rapide
    En effet c'est une bonne idée. Mais supposons que dans la partie admin, je supprime une image, il va y avoir un trou dans les id. Imaginons j'ai les images 1 - 2 - 3 - 4 et je supprime la 3. On passe de suite de 2 a 4 et là id-1 ne fonctionne plus :'(

  4. #4
    Membre confirmé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Points : 632
    Points
    632
    Par défaut
    attention avec la manipulation des id.
    si tu as un auto_increment, il se peut que tu aies des "trous", c-a-d qu'il manque des id (suppressions dans la base). En effet, l'auto_increment se fout royalement qu'il manque des id. Il prend Max(id) et ajoute 1 pour chaque nouvel enregistrement.
    Donc a manipuler avec precaution.

    -edit- et voila, encore un truc inutile car quelques secondes de retard...
    en tout cas, on a pensé au même probleme en meme temps
    Moi, j'aime pas facebook.

    Musiciens de France

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 64
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par Commodore_Psykopate
    -edit- et voila, encore un truc inutile car quelques secondes de retard...
    en tout cas, on a pensé au même probleme en meme temps
    Les grands esprits se rencontrent
    Mais alors comment faire ??

  6. #6
    Membre confirmé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Points : 632
    Points
    632
    Par défaut
    récupère tous les id dans un tableau et fonctionne avec l'index du tableau qui lui ne sautera pas de numero.
    Moi, j'aime pas facebook.

    Musiciens de France

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 64
    Points : 33
    Points
    33
    Par défaut
    Oki d'acc, au niveau de l'optimisation c'est correct ?

  8. #8
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    Je peux te suggérer une solution pas du tout optimisée en attendant de trouver mieux, au lieu de passer en parametre de ton lien l'id de la photo (ce qui peut poser probleme en cas de "trou" dans les ID comme tu le dis) tu peux passer un numéro de photo arbitraire (la premiere photo vaut 1, la seconde 2, etc...).
    par conséquant tu aura l'url:
    voirPhoto.php?id=5

    qui affichera:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     $previousID=$_GET['id']-1;
    $nextID=$_GET['id']+1;
    <a href="voirPhoto.php?id=$previousID">Photo Precedante</a>
    (...)
    et pour afficher la photo (la j'avoue c'est bourrin mais c'est pour dépanner )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $sql="SELECT * from photos";
        $resultat= @mysql_db_query($database,$sql,$id_link);
        $i=0;
        while ($i<$_GET['id'] && $rang=mysql_fetch_array($resultat)) {
                   if ($i==$_GET['id'] ) {
                        //Ici tu affiches ta photo
                   }
                   $i++;
            }
    Dès que je trouve une meilleure idée je t'en informe :p

  9. #9
    Membre confirmé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Points : 632
    Points
    632
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //Fichier a inclure : test.php
    include('connexion.php'); //connexion a la base de données
     
    $req='select id from photos';
    $res=mysql_query($req);
     
    $i=0
    while($aff=mysql_fetch_array($res)) {
       $index_photos[$i]=$aff[0];
       $i++;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //fichier de la galerie
    include('test.php'); //pour récupérer le tableau avec tous les id
     
    ...
     
    echo '<a href=galerie.php?'.$index_photos[$k+1].'>Suivant</a>
    //avec $k variant en fonction de la position où tu te trouves. (a récupérer)
    voila une idée à développer...
    Moi, j'aime pas facebook.

    Musiciens de France

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 64
    Points : 33
    Points
    33
    Par défaut
    Merci beaucoup a vous tous c'est super sympas
    Je vais faire ca en prenant differentes idées ...

    Je vous promet rien mais qui ne tente rien a rien :p

    Merci beaucoup encore

  11. #11
    Membre habitué Avatar de poussinphp
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 428
    Points : 176
    Points
    176
    Par défaut
    Pour retourner à mon "id - 1" je dirais déja que par convention, on met jamais d'auto-increment.

    Ensuite tu peut faire une condition en cas de "trou". Tu test si tu as un résultat; Si ça te renvois une erreur alros tu sais que c'est un trou.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Pseudo-code :
     
    $id_precedent = $id_actuel;
    $verif = false;
    while (!$verif)
    {
       $query = "select image from album where id=$id_precedent";
       if (!$query) {
       $id_precedent = $id_precedent - 1; }
       else { $verif = true; }
    }
    voila

  12. #12
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    Citation Envoyé par poussinphp
    Pour retourner à mon "id - 1" je dirais déja que par convention, on met jamais d'auto-increment.
    Quelle en est la raison ?
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  13. #13
    Membre confirmé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Points : 632
    Points
    632
    Par défaut
    au contraire, un auto_increment t'assure de ne pas avoir de doublons
    Moi, j'aime pas facebook.

    Musiciens de France

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 64
    Points : 33
    Points
    33
    Par défaut
    J'ai fais avec la methode de lecture dans un tableau, mais j'aimerai savoir si c'est vraiment une bonne solution ?? (sans pour autant critiquer les idées bien sur)

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 64
    Points : 33
    Points
    33
    Par défaut
    Personne ??

  16. #16
    Membre éclairé Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2006
    Messages : 858
    Points : 783
    Points
    783
    Par défaut
    Fais une table du type :

    id (en auto-increment)
    id_photo (a remplir manuellement 1,2,3,...)
    nom
    source

    et dans ta page d'affichage tu fais :

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    <?
     
    //connection
     
    if(isset($_GET['id'])){
    $id = $_GET['id'];
    }
    else{
    $id = 1;
    }
     
    $req = mysql_query("SELECT * FROM photos WHERE id_photo = '$id' ");
    while ($while = mysq_fetch_array($req)){
    echo $while['source'];
    }
     
    $id_min = mysql_query("SELECT MIN(id_photo) AS id_min FROM photos");
    $id_min = mysql_fetch_array($id_min);
    $id_min = $id_min['id_min'];
     
    $id_max = mysql_query("SELECT MAX(id_photo) AS id_max FROM photos");
    $id_max = mysql_fetch_array($id_max);
    $id_max = $id_max['id_max'];
     
    echo'<br /><br />';
     
    if($id==$id_min){
    echo'Précédent';
    }
    else{
    $new_id=$id-1;
    echo'<a href="tapage.php?id='.$new_id.'">Précédent</a>';
    }
     
    echo'<============>';
     
    if($id==$id_max){
    echo'Suivant';
    }
    else{
    $new_id=$id+1;
    echo'<a href="tapage.php?id='.$new_id.'">Suivant</a>';
    }
     
    mysql_close();
     
    ?>
    Fais a l'arrache en esperant que ca va t'aider
    Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ...
    Nicolas Jaar, Paul Kalkbrenner, Marek Hermann

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 64
    Points : 33
    Points
    33
    Par défaut
    Salut,

    Merci beaucoup
    Apres cela complique les update et les insert non ?

  18. #18
    Membre éclairé Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2006
    Messages : 858
    Points : 783
    Points
    783
    Par défaut
    Citation Envoyé par V_R46
    Salut,

    Merci beaucoup
    Apres cela complique les update et les insert non ?
    Comment ca ?
    Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ...
    Nicolas Jaar, Paul Kalkbrenner, Marek Hermann

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 64
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par Elwyn
    Comment ca ?

    Pour insérer et supprimer, id_photo suppose de faire des requete intermediaire pour savoir ou on en est non ?

  20. #20
    Membre éclairé Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2006
    Messages : 858
    Points : 783
    Points
    783
    Par défaut
    Mais non c'est bon !

    Imaginons t'as 3 images :

    id id_photo nom source
    1 1 ... ....
    2 2 ... ....
    3 3 ... ....

    T'en vire une :

    id id_photo nom source
    1 1 ... ....
    3 3 ... ....

    Faudra donc que tu remplace par

    id id_photo nom source
    1 1 ... ....
    3 2 ... ....

    Donc a chaque fois que tu vire une photo tu t'arrange toujours pour combler le "trou", tu vous ce que je veux dire ? D'ou l'utilité d'avoir un id (qui sert de clé primaire) et un id_photo (qui sert au Suivant et Précédent)
    Tu peux meme creer un script qui le fait automatiquement
    Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ...
    Nicolas Jaar, Paul Kalkbrenner, Marek Hermann

Discussions similaires

  1. [Galerie] Script de galerie de photos
    Par webide dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 50
    Dernier message: 15/04/2007, 19h03
  2. [Galerie] Galerie de photos, vente en ligne
    Par f56bre dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 26/03/2007, 12h26
  3. [Galerie] Site de galerie de photos : comment faire ?
    Par Louis Griffont dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 24/01/2007, 16h25
  4. [Galerie] Cherche un script php pour avoir une galerie de photos
    Par Nimajneb dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 03/08/2006, 10h19
  5. [FLASH MX2004] Galerie de photos
    Par ed!x dans le forum Flash
    Réponses: 3
    Dernier message: 07/09/2005, 01h58

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