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] Tableau avec retour à la ligne au bout de 8 colonnes


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 173
    Points : 83
    Points
    83
    Par défaut [Tableaux] Tableau avec retour à la ligne au bout de 8 colonnes
    Bonjour à tous

    Je voulais savoir comment je peux faire pour qu'un tableau me mette 8 colonnes et qu'à la 9 ème ça remette les colonnes à la ligne ?

    si j'ai 10 images à afficher dans un tableau, comment faire pour que la 9 et 10 ème soit à la ligne dessous ?

    J'espere que je suis assez clair

    Merci pour vos réponses

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Tu fais surement l'affichage dans une boucle, du coup tu ajoutes une variable dans ta boucle pour compter le numéro de l'image courante. Quand cette valeur modulo 8 vaut 0 alors c'est que tu dois aller a la ligne (en démarrant cette valeur a 0).

    EDIT(Celira) ca faisait longtemps

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bonjour

    Je pense que ce serait utile si tu précisais d'où sortent les éléments de ton tableau.
    En supposant que tu les affiches via une boucle, tu peux incrémenter un compteur et faire une comparaison avec 8 (par un modulo % par exemple) pour ajouter des balises de fin de ligne.

    EDIT : grillée !

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 173
    Points : 83
    Points
    83
    Par défaut
    Merci pour vos réponses. c'est effectivement dans une boucle.

    le problème c'est que je ne comprend pas comment marche le modulo %. Un petit tuto dans le coin serait le bienvenue.

    J'avais bien repéré un truc dans ce code (qui n'est pas de moi, mais j'ai voulu m'en servir).

    ça marche pour 2, comment l'adapter à 8 ?
    j'ai bien sur remplacer 2 par 8, mais l'affichage n'est pas correct.

    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
    	$i=1;
    		while($msn = mysql_fetch_assoc($req2)) 
    			{
    				$i++; 
     
    				  if ($i%2 == 0)
    				  {				  							
    				  echo ('<TD align="center" class="Bordure_fond" width="50%"><table><tr><td align="center"><img src="'.$msn['msn_lien_img'].'" width="58" height="58"></td></tr><tr><td align="center"><a href="'.$msn['msn_lien_tel'].'">Télécharger</a></td></tr></table></TD>');
    				   }
     
    				  if ($i%2 != 0) 
    				  {
    				  echo ('<TD align="center" class="Bordure_fond" width="50%"><table><tr><td align="center"><img src="'.$msn['msn_lien_img'].'" width="58" height="58"></td></tr><tr><td align="center"><a href="'.$msn['msn_lien_tel'].'">Télécharger lllllllllllllllllll</a></td></tr></table></TD>');
    				  echo ('</Tr>');
    				  }
    			}
    			if ($total%2 != 0) echo("</TR>");
    				echo '</tr></table>';
    Merci

  5. #5
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Le module est un opérateur mathématique qui te retourne le reste de la division euclidienne. Tu peut remplacer 2 par 8 et également remplacer le 50% par 12,5% (1/8eme à la place d'1 demi)

  6. #6
    Membre régulier
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 83
    Points : 97
    Points
    97
    Par défaut
    Faut remplacé 2 par 8

  7. #7
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Le modulo de A par B est le reste de la division entière de A par B, exemples:

    20%4 = 0 car 20/4 a pour valeur entière 5
    21%4 = 1 car 20/4 a pour valeur 5, 25 donc en division entière ca fait 5 pour le diviseur et 1 pour le reste

    Du coup toi tu veux que ton nombre de colonnes soit 8 au maximum donc tu vas faire un %8, comme ca quand tu es a la 8e image ca fait 8%8 = 0 donc tu vas a la ligne, 16e image ca fait 16%8 = 0 donc a la ligne etc.

    Maintenant, pourquoi ca bugge dans ton cas? Par ce que tu démarres ton compteur a 1 !
    Du coup la premiere image a pour compteur 1, la 2e a 2 et la 8e est a 8. Or dans ton code tu dis "quand j'ai 8%8==0 alors je vais a la ligne" du coup tu vas a la ligne une image trop tot.

    Le plus simple est donc d'initialiser ton compteur a 0 et non pas a un (et bien de remplacer 2 par 8 dans les modulos)

    EDIT: et effectivement comme dit avant, il faut que tu changes width (qui correspond a la taille prise par ta colonne dans la table) pour s'adapter a 8 colonnes.

  8. #8
    Membre régulier
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 83
    Points : 97
    Points
    97
    Par défaut
    Ta programmation est un peu compliquée, donc j'ai quelques peu modifié ton code ainsi :

    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
    <table border="1px">
    <tbody>
    <tr>
    <?php
    $ligne=0;
    $col=1;
    while ($ligne<4) {
    	while ($col%9!=0)	{ echo '<td>coucou</td>'; $col++; }
    	echo '<td>coucou_tr</td></tr><tr>';
    	$ligne++;
    	$col++;
    }
    ?>
    </tr>
    </tbody>
    </table>
    En espérant que cela pourra te servir

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 173
    Points : 83
    Points
    83
    Par défaut
    Merci à tous

    j'ai trouvé avec votre aide, mon problème venait du fait que j'ai mis un
    echo ('</TR>'); au mauvais endroit. ça ne faisait pas le renvois correctement. Il aurait du être dans le premier if et non le second.

    Et effectivement yohan22 le code est un peu compliqué et c'est avec plaisir que je vais me servir de ton code.

    En tous les cas j'ai aprris un truc de plus !! le modulo %.

    Merci à tous

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

Discussions similaires

  1. Bouton avec retour a ligne
    Par Dsphinx dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 29/05/2006, 21h30
  2. Tableau et retour à la ligne
    Par waterbed dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 21/05/2006, 19h17
  3. [Tableaux] sscanf() et retour à la ligne
    Par Mucsy dans le forum Langage
    Réponses: 1
    Dernier message: 17/05/2006, 14h16
  4. [Tableaux] Tableau avec valeur conditionnelle
    Par alfigor dans le forum Langage
    Réponses: 5
    Dernier message: 25/04/2006, 14h22
  5. Concatérner chaine avec retour à la ligne
    Par nebule dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 30/11/2004, 11h55

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