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 :

Affichage de photos [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 90
    Points : 54
    Points
    54
    Par défaut Affichage de photos
    Bonjour,

    j'ai un problème pour la mise en forme de l'affichage de photos. je stocke les liens des photos dans ma base.Lorsque j'affiche mes photos, j'utilise un tableau mais toutes les photos restent sur la même ligne. J'aurais aimé spécifier le nombre de photos par ligne ou alors empêcher les photos qui nécessitent un scrollbar horizontal restent sur la même ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    echo'<table border="1" bgcolor=grey>';
      echo'<tr>';
    		$retour = requete_sql('SELECT id_photo,nom_photo,url FROM PHOTO GROUP BY id_photo DESC');
    		while ($donnees = mysql_fetch_array($retour)) // On fait une  boucle pour lister les photos
    		{
    		$nom=($donnees['nom_photo']);
    		$url=$donnees['url'];
     
    		echo"<td><a href=../../".$url."><img title=\"$nom\" height=75 width=75 src=../../".$url." /></a>"; 
                    echo'</td>';
     
      echo'</tr>';
    echo'</table>';

  2. #2
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    salut,
    <tr></tr> permettent de délimiter une ligne dans un tableau html
    <td></td> permettent de délimiter une cellule dans un ligne.

    Donc en fait, dans ta boucle while, il faut que tu inséres des <tr> à intervalle régulier (par exemple tous les 5 itérations si tu veux 5 photos sur la même ligne) pour créer une nouvelle ligne.

  3. #3
    Membre du Club Avatar de TheEwook
    Inscrit en
    Novembre 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Novembre 2004
    Messages : 44
    Points : 50
    Points
    50
    Par défaut
    Salut,

    Juste un indice car on ne va pas de donner la solution tout de suite.
    En général pour faire ça on utilise le signe modulo (signe : %)

    Donc reprenant les éléments de julien.63 cela donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     if ( $i % 5 == 0 )
    {
        ....
    }
    Bien sur il te faut une variable i qui s'incrémente au fur et à mesure dans ta boucle while.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 90
    Points : 54
    Points
    54
    Par défaut
    J'ai fait ce que vous m'avez tous les deux expliqué, cela fonctionne à peu près. Dans le cas présent j'affiche normalement 5 photos sur une ligne, mais à l'affichage j'ai 4 photos sur la même ligne et la dernière photo juste en dessous.
    Exemple :
    Photo 1 Photo 2 Photo 3 Photo 4
    Photo 5
    Photo 1 Photo 2 Photo 3 Photo 4
    Photo 5
    etc.

    J'ai essayé de faire varier le nombre de photos à 10 par exemple, même résultat (9 photos sur la même ligne et la dernière juste en dessous).
    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
     
     
    echo'<table border="1" bgcolor=grey>';
     
    		$retour = requete_sql('SELECT id_photo,nom_photo,url FROM PHOTO GROUP BY id_photo DESC');
    	$i=0;	
             while ($donnees = mysql_fetch_array($retour)) // On fait une  boucle pour lister les photos
    	{
    		$nom=($donnees['nom_photo']);
    		$url=$donnees['url'];
     
    	  $i++; 	
    		if (($i % 5) == 0)
    		{
    		   echo'<tr>'; 
    		}	
                    echo"<td><a href=../../".$url."><img title=\"$nom\" height=75 width=75 src=../../".$url." /></a>"; 
                    echo'</td>';
                     if (($i % 5) == 0)
    		{
    		   echo'</tr>'; 
    		}
          }
    echo'</table>';

  5. #5
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    salut,
    voici, ce que je ferais (y'a sûrement d'autres solutions plus élégantes )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
     
    echo '<table border="1"><tr>';
    for ($i = 0 ; $i < 20; $i++){
    	if ($i%5 == 0) echo '</tr><tr>';
    	echo '<td>'.$i.'</td>';
    }
    echo '</tr></table>'
     
    ?>

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 90
    Points : 54
    Points
    54
    Par défaut
    J'ai mis en place ce tu m'as conseillé mais en fait une image est répétée plusieurs fois à cause de la boucle for.Parce que tu si tu regardes mon code je fais déjà une boucle while pour pouvoir récupérer toutes les photos de ma base.Par contre j'ai bien à chaque fois 5 photos sur une ligne.
    exemple avec ton code :
    Photo 1 Photo 1 Photo 1 Photo 1 Photo1
    Photo 1 Photo 1 Photo 1 Photo 1 Photo1
    jusqu'à la 5eme ligne Photo 1 puis photo 2 etc.

    j'ai enlevé cette portion de code de la boucle for,mais si je le fais toutes les photos s'affichent les unes derrière les autres verticalement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    echo"<td><a href=../../".$url."><img title=\"$nom\" height=75 width=75 src=../../".$url." /></a>"; 
                    echo'</td>';

  7. #7
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    essaye avec ce code:
    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
    $retour = requete_sql('SELECT id_photo,nom_photo,url FROM PHOTO GROUP BY id_photo DESC');
    $i=0;	 
    echo'<table border="1" bgcolor=grey><tr>';
    while ($donnees = mysql_fetch_array($retour)) // On fait une  boucle pour lister les photos
    {
    	$nom=($donnees['nom_photo']);
    	$url=$donnees['url'];
    	$i++; 	
    	if (($i % 5) == 0){
    		echo'</tr><tr>'; 
    	}	
        echo"<td><a href=../../".$url."><img title=\"$nom\" height=75 width=75 src=../../".$url." /></a>"; 
        echo'</td>';
    }
    echo'</tr></table>';

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 90
    Points : 54
    Points
    54
    Par défaut
    C'est presque parfait ! Pour une raison inconnue, seulement sur la première ligne il y a 4 photos qui s'affichent et sur les autres lignes il y a bien 5 photos.J'ai rajouté d'autres photos, j'ai essayé un modulo 10 ben toujours le même résultat 9 photos sur la première ligne et 10 photos sur les autres lignes.
    C'est hallucinant ! En plus, sur la première ligne il affiche les 4 photos + le cadre de la 5ème sans photo.

  9. #9
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    en fait c'est à cause du modulo.
    essaye avec $i=-1; au lieu de $i=0;

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 90
    Points : 54
    Points
    54
    Par défaut
    enfin ça marche bien. merci beaucoup pour ton aide julien !

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

Discussions similaires

  1. Affichage de photos jpg
    Par judor31 dans le forum Bases de données
    Réponses: 1
    Dernier message: 10/05/2006, 21h34
  2. [FLASH MX2004] Affichage de photo
    Par mooky dans le forum Flash
    Réponses: 1
    Dernier message: 20/02/2006, 13h27
  3. Affichage de photos provenant d'une base mySQL
    Par archos6 dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 18/10/2005, 17h41
  4. pb affichage des photos incorporées par balises html
    Par laville dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 01/04/2005, 11h47

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