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] [Debutant] aller à la ligne tous les x photos


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut [Tableaux] [Debutant] aller à la ligne tous les x photos
    Bonjour,

    J'ai un script qui me fait une galerie photo.

    Je souhaiterai que tous les x photos, on aille à la ligne pour les photos suivantes, mais je ne connais pas la fonction.

    Merci pour votre aide.

  2. #2
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Une fonction pour aller à la ligne

    Tu comptes et tu mets des <TR> ou <BR> toutes les x photos, mais sinon si tu mets un peu de code ça pourrait nous aider à t'aider (expression vue sur un autre topic).

  3. #3
    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
    tu met chaque photo entre <div style="float:left;"></div>
    Enfin, tu devrais plutot aller voir du coté du forum HTML

  4. #4
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    J'ai oublié de préciser l'essentiel.

    Les photos correspondent à des resultats php/MySql, les photos ne sont pas en dur, donc le but c'est justement d'arriver à un bout de code qui enverra un br toutes les x photos.

    Voici le code si ca vous interresse:
    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
    <?php
    // on déclare un tableau qui contiendra le nom des fichiers de nos miniatures
    $tableau = array();
    // on ouvre notre dossier contenant les miniatures
    $dossier = opendir ('../assets/thumbail/'); 
    while ($fichier = readdir ($dossier)) {
        if ($fichier != '.' && $fichier != '..' && $fichier != 'index.php') {
            // on stocke le nom des fichiers des miniatures dans un tableau
            $tableau[] = $fichier;
        }
    } 
    closedir ($dossier); 
     
    // on défini le nombre de colonne sur lesquelles vont s'afficher nos miniatures
    $nbcol=2;
    // 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>'; 
        for ($i=0; $i<$nbpics; $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
    		$mapicture = "../assets/picture/$tableau[$i]";
    		$lienversmapicture = "return popImage('$mapicture','hug')";
            echo '<td><a href="#" onClick="',$lienversmapicture,'"><img src="../assets/thumbail/' , $tableau[$i] , '" alt="Copyright " onload=this.style.filter=\'progid:DXImageTransform.Microsoft.Shadow(color=#000000,direction=135,strength=3)\' border="0"/></a></td>';  
            if($i%$nbcol==($nbcol-1) or $i==($nbpics-1)) echo '</tr>';  
        }  
        echo '</table>';
    }
    // si on a aucune miniature, on affiche un petit message :)
    else echo 'Aucune image à afficher';
    ?>

  5. #5
    Membre averti Avatar de nicoaix
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 571
    Points : 362
    Points
    362
    Par défaut
    Voici le code que j'utilise pour ça. Il manque au début le code de connexion à la table de la base:
    <?
    //$num est le nombre de photos
    if($num > 0) {
    //""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    //Création du tableau
    //""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    print"<table width='100%' border='0' cellspacing='10' cellpadding='0'>";

    // Nombre de colonnes désirées

    $nb_colonne = 4;
    $z = 0;
    $nb_cel = $num;

    for (
    $i = 0; $i < $num; $i++) {
    if (
    $z % $nb_colonne == 0 ) {

    // si le reste de $z / 3 (le nombre de colonnes
    // désirées) égale 0 et que $z n'en est pas à sa
    // première itération (pour éviter d'avoir une
    // ligne "<tr>" parasite au début, c'est que l'on
    // peut commencer une ligne

    // on commence une ligne du tableau

    echo "\n<tr>\n";
    }

    if(
    $z % $nb_colonne !=0 OR $z % $nb_colonne == 0 ) {

    //Récupération des données de la base
    $id = mysql_result($query,$i,'id');
    //Nom du fichier image dans la base
    $image = mysql_result($query,$i,'image');

    // on affiche une cellule composé d'un tableau de 2 lignes et une colonne
    print("
    <td><div align='center'><table border='1' cellspacing='0' cellpadding='0' bordercolor='#000000'>
    <tr>
    <td width=\"150\"><div align='center'><b>$id</b></div></td>
    </tr>
    <tr>
    <td><div align='center'><img src='imagesan/$image' width='80' height='80' border='0'></div></td>
    </tr>
    </table></div></td>"
    );
    }

    $z++; // on incrémente le compteur

    if ( $z % $nb_colonne == 0 OR $z == $nb_cel ) {

    // puisque $z a été incrémenté une ligne plus haut,
    // la condition ci-dessous recevra une valeure de $z
    // différente du début de la boucle, donc on peut
    // fermer la ligne

    echo "\n</tr>\n";
    }
    }
    echo
    "</table>";
    //}
    }
    ?>
    Colorez votre code PHP sur les forums grâce à Developpez.com

  6. #6
    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
    pour vraiment avoir qq chose de modulaire, qq soit la résolution, utiliser des div avec le style float à left.
    C'est propre (XHTML strict et CSS), c'est modulaire, et y a bcp moins de ligne à ecrire

    ecrit à la volé donc pas testé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <style>
    .image { float:left; margin:10px 5px 10px 5px; height:150px; width:150px;}
    </style>
     
    <?php
    // image provenant de BDD
    while ($row = mysql_fetch_assoc($result))
    {
        echo '<div class="image"><img src="'.$row['adresse_img'].'" /></div>';
    }
    ?>

  7. #7
    Membre averti Avatar de nicoaix
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 571
    Points : 362
    Points
    362
    Par défaut
    wamania, dans le code que tu donnes je ne comprend pas comment tu fais pour avoir par exemple un affichage sur 3 colonnes?

  8. #8
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    Merci pour vos réponses.

    wamania, je garde ton code pour un autre site, mais la je préfère avoir mes photo en fixe.

    Merci à Nico pour ton code qui fonctionne très bien et qui résout totalement mon pb.

    resolu, merci à tous

  9. #9
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    en fait je crois qu'il n'y a pas un nombre de colonne defini.

    On donne la taille du cadre general si jai bien compris et après ca sadapte automatiquement.

    Donc le nombre de colonne sera variable

  10. #10
    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
    Oki, il en manquait un bout, mais l'idée reste la même

    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
    <style>
    .image { float:left; margin:10px 5px 10px 5px; height:150px; width:150px;}
    .image_new_line {clear:left; margin:10px 5px 10px 5px; height:150px; width:150px;}
    </style>
     
    <?php
    // image provenant de BDD
    while ($row = mysql_fetch_assoc($result))
    {
        $class = 'image';
        if ($i == 3)
        {
            $i = 0;
            $class = 'image_new_line';
        }
        echo '<div class="'.$class."><img src="'.$row['adresse_img'].'" /></div>';
        $i++;
    }
    ?>

  11. #11
    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
    en fait je crois qu'il n'y a pas un nombre de colonne defini.

    On donne la taille du cadre general si jai bien compris et après ca sadapte automatiquement.

    Donc le nombre de colonne sera variable
    oui, sauf si on force avec clear, qui place un bloc en dessous du précédent.

  12. #12
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    merci pour toutes ces précisions.

    bonne journée.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/07/2012, 23h22
  2. String avec retour à la ligne tous les '100' caractères
    Par Portugues13 dans le forum Débuter avec Java
    Réponses: 16
    Dernier message: 05/06/2012, 17h16
  3. saut de ligne tous les n caractère
    Par bigs3232 dans le forum Langage
    Réponses: 2
    Dernier message: 07/01/2012, 13h41
  4. Réponses: 2
    Dernier message: 16/08/2006, 14h47
  5. Réponses: 15
    Dernier message: 21/06/2004, 16h52

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