Page 1 sur 1
je tape dans le mur pour une boucle
Posté : 15 avr. 2008, 14:22
par jobart
Bonjour,
petite boucle
$a=date("n")+8;
$an=date("Y");
if($a>12){$a="0";$an=date("Y")+1;}
for ($i = $a; $i < $a+4; $i++){
echo$i;echo"***";
echo$an;echo"<br>";
}
qui me donne
12***2008
13***2008
14***2008
15***2008
comment arriver pour qu'il me donne
12***2008
1***2009
2***2009
3***2009

Posté : 15 avr. 2008, 14:24
par h0_noMan
Mets ton IF dans ta boucle.
Posté : 15 avr. 2008, 14:28
par jobart
ben si je fais ce que tu me dis
for ($i = $a; $i < $a+4; $i++){
if($a>12){$a="0";$an=date("Y")+1;}
echo$i;echo"***";
echo$an;echo"<br>";
}
ça fait rien
Posté : 15 avr. 2008, 14:31
par h0_noMan
C'est normal car c'est le $i que tu incrémente dans ta boucle et pas le $a.
Donc change ta condition en remplaçant $a par $i.
Posté : 15 avr. 2008, 14:40
par jobart
for ($i = $a; $i < $a+4; $i++){
if($i>12){$i="1";$an=date("Y")+1;}
echo$i;echo"***";
echo$an;echo"<br>";
}
ben là ça devient une boucle infinie
Posté : 15 avr. 2008, 15:03
par h0_noMan
Essayes comme ceci :
$a = date("n")+8; // $a = MOIS + 8
$an = date("Y"); // $an = ANNEE
if($a>12)
{
$a = $a-12 ; // 13->1 14->2 15->3 ...
$an++; // On passe a l'annee suivante
}
for($i = $a; $i < $a+4; $i++)
{
$j = $i ;
if($i>12) // Si $i>12 alors $j recommence a 1 pour ne pas activer condition du FOR
{
$j=1 ;
$an++ ;
}
echo $j.'***'.$an.'<br>' ;
}
Posté : 15 avr. 2008, 15:03
par Berzemus
allons allons, un peu de logique..
$a=date("n")+8;
$an=date("Y");
if($a>12){$a="0";$an=date("Y")+1;}
for ($i = $a,$mois=$i; $i < $a+4; $i++,$mois++)
{
if ($mois > 12)
{
$mois=1;
$an++;
}
echo$mois;echo"***";
echo$an;echo"<br>";
}
Il faut bien voir ce qu'on incrémente, ce qui se passe si on le modifie, et les répercussion de chaque instruction..
Posté : 15 avr. 2008, 15:17
par jobart
Merci à vous 2 =D>