Page 1 sur 1

metre de br tout les deux foto

Posté : 14 oct. 2005, 19:15
par guismoman33
bonjour voila mon code mais il ne veu pas me mettre un <br> tout les deux images il me met un <br> a chaque images et des qu'il arrive a limage 2 il ne fait que me lafficher
et je veu 2image par ligne et 10 image sur ma page mais si jen est que trois comment éviter qu'il me mette 7 petite etoile pour le completer?
<? 
if ($num  ==  NULL) 
{ 
    $num = 1; 
} 
$num_foto = 3; 
$temoin = 10; 
$plus = 1; 
while ($temoin>$plus) 
{ 
    $affichage = $temoin*$num-$temoin+$plus; 
    echo '<img border = "0" style="margin: 10px" src = "img/'.$affichage.'.jpg" include "'.$affichage.'.php";>';
    if ($affichage=2 or $affichage=4 or $affichage=6 or $affichage=8)
    {
    echo '<br>'; 
    } 
    
    $plus = $plus+1; 
} 
?> 

Posté : 14 oct. 2005, 19:17
par zeus
Moderation : Fait un effort sur ton langage s'il te plait
Tu as un clavier complet devant toi, pas un clavier de téléphone portable ;)

Posté : 14 oct. 2005, 19:25
par Cyrano
J'ajouterais en regardant ton script que tu vas générer du html bizzare : c'est quoi ce "include" dans la balise <img> ??

Et pour le saut de ligne toutes les deux images, utilise un modulo :
<?php
if ($num  ==  NULL)
{
    $num = 1;
}
$num_foto = 3;
$temoin = 10;
$plus = 1;
while ($temoin > $plus)
{
    $affichage = $temoin * $num - $temoin + $plus;
    $retour = $plus % 2 == 0 ? "<br />" : null;
    echo '<img border = "0" style="margin: 10px" src = "img/'.$affichage.'.jpg" />';
    echo $retour;
    $plus++;
}
?>

Posté : 14 oct. 2005, 20:01
par guismoman33
ouai je veut bien faire un modulo mais je c'est pas se que c'est!mon iclude servait a mettre les parametre de mes images!enfin voila et tu peut m'expliquer se que tu a modifier stp merci beaucoup

Posté : 14 oct. 2005, 20:08
par Cyrano
regarde la ligne que j'ai mise : tu vas apprendre deux choses : le modulo et l'opérateur ternaire dans la foulée:
$retour = $plus % 2 == 0 ? "<br />" : null;
Ça, c'est exactement comme si j'avais fait:
if($plus % 2 == 0)
{
    $retour =  "<br />";
}
else
{
    $retour =  null;
}
C'est ce qu'on appelle un opérateur ternaire, le "?" correspond au if : la valeur qui suit sera utilisée si la condition est VRAIE/TRUE: le ":" correspond au else et la seconde valeur sera utilisée si la condition du if() est FAUX/FALSE.

La condition que j'ai mise: if($plus % 2 == 0) peut se traduire par:
"Si le reste de la division de $plus par 2 est égal à 0"
Comme tu avais mis un pointeur $plus, je l'ai utilisé.

À ton tour, explique moi donc ce que tu veux faire avec ton include dans la balise <img>?

Posté : 14 oct. 2005, 20:20
par guismoman33
avec mon include je voulai tout simplement donné les paramètre de mon image la taille quoi!tu vois?
dsl je suis encore un débutant alors le modulo et tou jvai voir si jcomprend en e concentrant parce que la je comprend pas beaucoup!mais bon et comment pe on dir de stopé dès qu'il y a plus de photo

Posté : 14 oct. 2005, 20:25
par guismoman33
c bon j'ai compris mais le % c'est quoi exactement

Posté : 14 oct. 2005, 20:39
par Cyrano
C'est ça le modulo.

Posté : 14 oct. 2005, 20:50
par guismoman33
ok, en clair le modulo c'est divisé quelque chose et voir si le reste correspond a quelque chose

Posté : 14 oct. 2005, 21:10
par Cyrano
Ben c'est pas très compliqué : là, on vérifie le reste de la division d'un nombre par 2 : le reste ne peut être dans ce cas que 0 ou 1 : d'accord jusque là ? Si j'avais fait $point % 3 == 0, j'aurais vérifié le reste de la division de $point par 3, donc le reste selon la valeur de $point peut être 0, 1 ou 2, rien d'autre.

Le signe % n'est qu'un opérateur qu'on a nommé Modulo par convention et son usage est ce que je viens d'expliquer.
4 % 2 = 0 :correspond à 4 divisé par deux donne à la fin un reste de 0
4 % 3 = 1 :correspond à 4 divisé par 3 donne un reste de 1

C'est plus clair de cette manière ?

Posté : 14 oct. 2005, 21:46
par pjl
comment pe on dir de stopé dès qu'il y a plus de photo
Tu vérifie que le fichier image existe bien avec la fonction file_exists
et pour stoper ta boucle, tu as la fonction break.