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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé 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
    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
    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 : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Par défaut
    tu met chaque photo entre <div style="float:left;"></div>
    Enfin, tu devrais plutot aller voir du coté du forum HTML
    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

  4. #4
    Membre éclairé 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
    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 éclairé 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 : 50
    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
    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 : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    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>';
    }
    ?>
    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

  7. #7
    Membre éclairé 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 : 50
    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
    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 éclairé 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
    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

+ 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