Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/12/2011, 22h22   #1
Invité de passage
 
Syrie Man
Inscription : avril 2010
Messages : 76
Détails du profil
Informations personnelles :
Nom : Syrie Man

Informations forums :
Inscription : avril 2010
Messages : 76
Points : 2
Points : 2
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 :
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
AI_LINUX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 09h45   #2
Membre éclairé
 
Avatar de Sekigawa
 
Développeur Web
Inscription : mars 2008
Messages : 426
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mars 2008
Messages : 426
Points : 316
Points : 316
Salut !

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

Code :
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
__________________
Cookie : Anciennement petit gâteau sucré, qu'on acceptait avec plaisir. Aujourd'hui : petit fichier informatique drôlement salé, qu'il faut refuser avec véhémence.
Sekigawa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 09h48   #3
Membre Expert
 
Avatar de Doksuri
 
Tiger Scott
Développeur Web
Inscription : juin 2006
Messages : 1 249
Détails du profil
Informations personnelles :
Nom : Tiger Scott
Âge : 42

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2006
Messages : 1 249
Points : 1 510
Points : 1 510
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.

N'oubliez pas le Le tag resolu.

Need_!
Doksuri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 09h55   #4
Membre éclairé
 
Avatar de Sekigawa
 
Développeur Web
Inscription : mars 2008
Messages : 426
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mars 2008
Messages : 426
Points : 316
Points : 316
Ouai c'est ce que j'ai fait mais sans modulo lol
__________________
Cookie : Anciennement petit gâteau sucré, qu'on acceptait avec plaisir. Aujourd'hui : petit fichier informatique drôlement salé, qu'il faut refuser avec véhémence.
Sekigawa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 10h15   #5
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Bonjour,

Tu dois penser à gérer la création des lignes dans ton tableau : <tr></tr>.
Tu peux aussi faire comme ça :
Code :
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
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/12/2011, 12h25   #6
Invité de passage
 
Syrie Man
Inscription : avril 2010
Messages : 76
Détails du profil
Informations personnelles :
Nom : Syrie Man

Informations forums :
Inscription : avril 2010
Messages : 76
Points : 2
Points : 2
Salut,
Merci, j'ai test le code de rawsrc ça marche très bien, mais pourquoi je dois échapper le $item->comment ??
Merci
AI_LINUX est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h03.


 
 
 
 
Partenaires

Hébergement Web