je tape dans le mur pour une boucle

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : je tape dans le mur pour une boucle

par jobart » 15 avr. 2008, 15:17

Merci à vous 2 =D>

par Berzemus » 15 avr. 2008, 15:03

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..

par h0_noMan » 15 avr. 2008, 15:03

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>' ;
}

par jobart » 15 avr. 2008, 14:40

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

par h0_noMan » 15 avr. 2008, 14:31

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.

par jobart » 15 avr. 2008, 14:28

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

par h0_noMan » 15 avr. 2008, 14:24

Mets ton IF dans ta boucle.

je tape dans le mur pour une boucle

par jobart » 15 avr. 2008, 14:22

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
:oops: