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 :

boucle for dans php [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 100
    Par défaut boucle for dans php
    Salut les amis,
    j'ai besoin de votre aide, je veux afficher 4 image par ligne, avec ce code, pouvez vous me dire ou je dois placer la fonction for dans ce code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     <table align="center">
                    <?php $rows = $rows->result();
                    foreach ($rows as $results => $item): ?>
                        <td>
                            <h6 align="center"> <?php echo $item->id; ?> :<br /></h6>
                            <?php echo '<a href=' . base_url() . $item->path . ' rel="imagezoom[images]" title=' . $item->comment . ' />' ?>
                                <?php echo '<img src=' . base_url() . $item->path . '  width="100" rel="imagezoom"/>' ?><br />
                            <!--?php echo $item->comment; ?> <br/-->
                        </td>
                    <?php endforeach; ?>  
                </table>
    Merci

  2. #2
    Membre éclairé Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Par défaut
    Salut !

    Pourquoi une boucle for alors que t'as déjà une bouche foreach ?

    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
    <?php
     
    $tableau = '<table align="center">';
    	$rows = $rows->result();
    	$colonnes = '<tr>';
    	$i = 1; // Pour les lignes
    	foreach ($rows as $results => $item){
     
    		$colonnes .= '
    		<td>
    			<h6 align="center">'.$item->id.' :<br /></h6>
    			<a href=' . base_url() . $item->path . ' rel="imagezoom[images]" title=' . $item->comment . ' />
    			<img src=' . base_url() . $item->path . '  width="100" rel="imagezoom"/><br />
    		</td> ';
     
    		if($i > 3) // On a nos 4 colonnes on fait une nouvelle ligne
    		{
    			$tableau .= '</tr>';
    			$tableau .= '<tr>'.$colonnes;
     
    			$i = 1;
    		}else{
    			$tableau .= $colonnes;
    		}	
     
    		$i++;
     
    	}
    $tableau .= '</tr></table>';
     
    echo $tableau;
     
    ?>
    Essayes ça pour voir

  3. #3
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 494
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 494
    Par défaut
    salut,
    je pense que le plus simple dans ton cas est d'ajouter un compteur avant ton foreach, que tu incremente dans don foreach.
    puis, dans ton foreach, tu test le modulo de ton compteur : s'il est egal a zero, tu fais une nouvelle ligne
    quelque chose comme : if($compteur % 4 == 0) { echo '</tr><tr>'; } (je ne suis pas sur de la syntaxe, mais c'est l'idee a suivre)
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  4. #4
    Membre éclairé Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Par défaut
    Ouai c'est ce que j'ai fait mais sans modulo lol

  5. #5
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    Tu dois penser à gérer la création des lignes dans ton tableau : <tr></tr>.
    Tu peux aussi faire comme ça :
    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
    <?php
     
    $base_url = base_url();
    $data = $rows->result();
     
    // affichage
    $col   = -1;
    $nbMax = 4;
    $html  = array();
     
    if ( ! empty($data)) {
       $html[] = '<tr>';
       foreach($data as $item) {
          if (++$col === $nbMax) {
             $html[] = '</tr><tr>';
             $col = 0;
          }
          $html[] = <<<HTML
    <td>
       <h6 align="center">{$item->id} :<br /></h6>
       <a href="$base_url{$item->path}" rel="imagezoom[images]" title="{$item->comment}" />
       <img src="$base_url{$item->path}" width="100" rel="imagezoom" /><br />
       <!-- {$item->comment}<br /> -->
    </td>
    HTML;
       }
     
       // on complète avec des cellules vides si le nombre d'images
       // n'est pas multiple du nombre d'images par ligne
       while(++$col < $nbMax) {
          $html[] = '<td>&nbsp;</td>';
       }
     
       $html[] = '</tr>';
    }
    ?>
    <table align="center">
       <tbody>
          <?php echo implode("\n", $html); ?>
       </tbody>
    </table>
    Je te conseille d'échapper le $item->comment

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 100
    Par défaut
    Salut,
    Merci, j'ai test le code de rawsrc ça marche très bien, mais pourquoi je dois échapper le $item->comment ??
    Merci

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

Discussions similaires

  1. [AJAX] Liste liée Ajax dans une boucle For en php
    Par milo1986 dans le forum AJAX
    Réponses: 6
    Dernier message: 23/11/2012, 06h48
  2. inclure du html dans une boucle for en php?
    Par stef06 dans le forum Langage
    Réponses: 4
    Dernier message: 31/07/2006, 14h25
  3. Boucle For dans un TDBGrid
    Par Latipolia dans le forum C++Builder
    Réponses: 28
    Dernier message: 14/06/2005, 12h12
  4. boucle for dans un if...
    Par SylverFox dans le forum Débuter
    Réponses: 3
    Dernier message: 11/08/2004, 16h57
  5. Boucle for dans un script cmd
    Par nicolas.ganache dans le forum Développement
    Réponses: 4
    Dernier message: 19/07/2004, 16h07

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