Condition dans 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 : Condition dans une boucle

Condition dans une boucle

par speedy67 » 04 déc. 2005, 21:02

Merci,

c'est comme ça que j'avais finalement fait.

par Cyrano » 04 déc. 2005, 17:53

La syntaxe d'un for() ne souffre pas de fantaisie de ce genre. Essaye donc ça:
<html>
<?php
for ($j = 0; $j<=24;$j++)
{
    $biere[$j]    = $_POST['biere'.$j];
    $aperitif[$j] = $_POST['aperitif'.$j];
    $digestif[$j] = $_POST['digestif'.$j];
    $vin[$j]      = $_POST['vin'.$j];
    if ($biere[$j]+$aperitif[$j]+$digestif[$j]+$vin[$j] != 0)
    {
        print $j.' heure'.($j<=1?' ':'s ').': '.($biere[$j]!=0?$biere[$j].' bi&egrave;re'.($biere[$j]>1?'s':''):'').($aperitif[$j]!=0?', '.$aperitif[$j].' ap&eacute;ritif'.($aperitif[$j]>1?'s':''):'').($digestif[$j]!=0?', '.$digestif[$j].' digestif'.($digestif[$j]>1?'s':''):'').($vin[$j]!=0?', '.$vin[$j].' verre'.($vin[$j]>1?'s de vin':' de vin'):'').'; <br>';
    }
}
?>
</html>

Re: Condition dans une boucle

par Invité » 04 déc. 2005, 17:47

<?php
for ($j = 0; $j<=24;

il manque la parenthèse fermée
et la structure d'une boucle for est:

Code : Tout sélectionner

for (expression1; condition; expression2)
La paranthèse est à la fin de la boucle, après l'incrémentation :
$j++) ;

Comme l'expression 2 comporte plusieurs instructions, elles sont séparées par des virgules, comme indiqué ici (exemple 16-14-4 du manuel de référence (http://www.php.net/manual/fr/control-structures.for.php) :

for ($i = 1; $i <= 10; print $i, $i++);
?>

mais vu le nombre important d'instructions à mettre après le dernier point-virgule, je vais peut-être opter pour la syntaxe de l'exemble 1.

Re: Condition dans une boucle

par mario » 04 déc. 2005, 16:58

<?php
for ($j = 0; $j<=24;

il manque la parenthèse fermée
et la structure d'une boucle for est:

Code : Tout sélectionner

for (expression1; condition; expression2)

Condition dans une boucle

par speedy67 » 04 déc. 2005, 16:19

Bonjour,

ça fait deux jours que je me suis mis au php et j'ai déjà un soucis que je n'arrive pas comprendre. Le script suivant fait le récapitulatif de la récupération d'un formulaire qui a la forme d'un tableau de 4 colonnes et 24 lignes. Mais je ne veux afficher que le contenu des lignes non-vides. j'ai donc inséré une condition if avant la commande qui affiche la ligne.Le script marche bien sans cette condition mais dès que je l'insère, j'ai une erreur de type "Parse error: parse error, unexpected T_IF". Vaudrait-il mieux que je fasse appel à une fonction pour éviter les problèmes de fin d'expression (, ou ;) ?
<html>
<?php 
for ($j = 0; $j<=24;
$biere[$j]=$_POST['biere'.$j],
$aperitif[$j]=$_POST['aperitif'.$j],
$digestif[$j]=$_POST['digestif'.$j],
$vin[$j]=$_POST['vin'.$j],
if ($biere[$j]+$aperitif[$j]+$digestif[$j]+$vin[$j]!=0)
{print $j.' heure'.($j<=1?' ':'s ').': '.($biere[$j]!=0?$biere[$j].' bi&egrave;re'.($biere[$j]>1?'s':''):'').($aperitif[$j]!=0?', '.$aperitif[$j].' ap&eacute;ritif'.($aperitif[$j]>1?'s':''):'').($digestif[$j]!=0?', '.$digestif[$j].' digestif'.($digestif[$j]>1?'s':''):'').($vin[$j]!=0?', '.$vin[$j].' verre'.($vin[$j]>1?'s de vin':' de vin'):'').'; <br>';},
$j++) ;
?>
</html>