Boucle WHILE

ViPHP
ViPHP | 2291 Messages

23 nov. 2008, 21:35

Bonsoir,
Comment est t'il possible de sortir une variable d'une boucle while ?

D'avance merci

Mammouth du PHP | 2937 Messages

24 nov. 2008, 00:02

Et la structure de contrôle break, à quoi sert-elle ? ;)

ViPHP
ViPHP | 2291 Messages

24 nov. 2008, 00:10

Bin elle permet de sortir d'une structure for, foreach, while, do-while ou switch. :lol:

Blague a part je me suis mal exprimer
while($row08 = mysql_fetch_assoc($result08)){

          $vgu08sep = (($row08['mois']=="9")? $row08['VGU08'] : "");
          $vgu08oct = (($row08['mois']=="10")? $row08['VGU08'] :"");
          $vgu08nov = (($row08['mois']=="11")? $row08['VGU08'] :"");
          $vgu08dec = (($row08['mois']=="12")? $row08['VGU08'] :"");
          $vgu08jan = (($row08['mois']=="1")? $row08['VGU08'] :"");
          $vgu08fev = (($row08['mois']=="2")? $row08['VGU08'] :"");
          $vgu08mar = (($row08['mois']=="3")? $row08['VGU08'] :"");
          $vgu08avr = (($row08['mois']=="4")? $row08['VGU08'] :"");
          $vgu08mai = (($row08['mois']=="5")? $row08['VGU08'] :"");
          $vgu08jui = (($row08['mois']=="6")? $row08['VGU08'] :"");
Comment est t'il possible de récupéré par exemple la valeur de $vgu08jui en dehord de la boucle while :?:

ViPHP
AB
ViPHP | 5818 Messages

24 nov. 2008, 00:50

Ta question n'est toujours pas claire. La variable gérée par la boucle est bien disponible en dehors, non ? ?

ViPHP
ViPHP | 2291 Messages

24 nov. 2008, 00:56

Ta question n'est toujours pas claire. La variable gérée par la boucle est bien disponible en dehors, non ? ?
et bin non justement
si j'essaye de la répérée en dehord de ma boucle rien ne s'affiche :roll:
par exemple : $vgu08nov s'affiche mais pas les deux avant $vgu08sep $vgu08oct . :oops:

ViPHP
ViPHP | 3607 Messages

24 nov. 2008, 01:15

Et d'ailleurs, pourquoi vouloir les atteindres en dehors de la boucle?
Dans ce cas là autant utiliser un tableau plus grand où tu stockes tout ce que tu traites à l'intèrieur de ta boucle...

Mammouth du PHP | 881 Messages

24 nov. 2008, 01:59

Si tu n'as pas initialisé ta variable et que le travail qu'effectue ta boucle while ne trouve jamais de valeur égale à 11, ta variable nov ne contiendra rien.

Voici une proposition qui pourrait peut-être simplifier ton code:

$vgu = array();
$row = array();
$an = 2008;
while($row[$an] = mysql_fetch_assoc($result08)){ 
          $vgu[$an][$row[$an]['mois']] = $row[$an];
}

Ainsi, tu pourras appliquer le traitement chaque année sans avoir à coder de nouveau.
Le code ci-haut te donnera donc un tableau comme ceci
$row[2008][1] = contenu de $row[2008] relatif au mois de jan;
$row[2008][2] = contenu de $row[2008] relatif au mois de fév;
$row[2008][3] = contenu de $row[2008] relatif au mois de mar;
$row[2008][4] = contenu de $row[2008] relatif au mois de avr;
$row[2008][5] = contenu de $row[2008] relatif au mois de mai;
$row[2008][6] = contenu de $row[2008] relatif au mois de juin;
$row[2008][7] = contenu de $row[2008] relatif au mois de juil;
$row[2008][8] = contenu de $row[2008] relatif au mois de août;
$row[2008][9] = contenu de $row[2008] relatif au mois de sep;
$row[2008][10] = contenu de $row[2008] relatif au mois de oct;
$row[2008][11] = contenu de $row[2008] relatif au mois de nov;
$row[2008][12] = contenu de $row[2008] relatif au mois de déc;
Soyez artisans de paix

ViPHP
ViPHP | 4674 Messages

24 nov. 2008, 09:40

Hey :),

On parle de portée de variable. Si ta variable existe dans la boucle, elle n'existe pas en dehors. En revanche, si tu la déclares en dehors (avant), elle sera accessible à l'intérieure :
$handle;
$i = 0;
while($i++ < 10)
    $handle = $i;
var_dump($handle);
QED.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
AB
ViPHP | 5818 Messages

24 nov. 2008, 23:43

Hey :),

On parle de portée de variable. Si ta variable existe dans la boucle, elle n'existe pas en dehors. En revanche, si tu la déclares en dehors (avant), elle sera accessible à l'intérieure :
$handle;
$i = 0;
while($i++ < 10)
    $handle = $i;
var_dump($handle);
QED.
Pas clair non plus, depuis quand une variable créée dans une boucle ne serait-elle pas accessible de l'extérieur de la boucle ? Bah heureusement qu'on est dans la rubrique php avancé :oops:
for ($i=0; $i<=5; $i++)
{
$a = $i;
}
var_dump($a);// int(5) 
D'après ce que j'ai finalement compris la variable que tu veux récupérer est écrasée à chaque itération. Ben oui donc utilise un tableau ...
Ou alors comme dans ton exemple les variables ne seront renseignées qu'une fois, tu peux faire aussi
($row08['mois']=="9")? $vgu08sep = $row08['VGU08'] : "";

enfin bon une solution à la manière de ce qu'indique Patriboom serait plus optimisée

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

ViPHP
ViPHP | 4674 Messages

24 nov. 2008, 23:52

Bah heureusement qu'on est dans la rubrique php avancé :oops:
Dites voir Mr. l'Invité, merci de rester courtois :evil:
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
AB
ViPHP | 5818 Messages

24 nov. 2008, 23:58

HyWaN, arrêtes de prendre des substances illicites :lol:

ViPHP
ViPHP | 2291 Messages

25 nov. 2008, 00:30

Salut,
Merci à tous, j'ai tout recommencer et comme je m'en doutais JE SUIS UN BOULET :twisted:
j'étais mal parti et je me suis enfoncer dans mes erreurs en corrigeant celle-ci au lieu de me demander pourquoi elle étais là !

Quand à @ Patriboom merci mais le 08 est le nom du module pas 2008 :wink: parce que sinon j'aurais simplement fait un truc du genre dans ma requête.
 WHERE date BETWEEN '".$dateDebut."' AND '".$dateFin."'
Bon le boulet va faire enfin dodo :wink: