Page 1 sur 1

Condition sur plusieurs variables [résolu]

Posté : 05 avr. 2011, 10:30
par abx66
Bonjour,
Je souhaite tester plusieurs variables en même temps avec une condition multiple :
Si $a = bleu
action 1
si $a = bleu et $b =bleu
action 2

J'ai essayé avec des elseif mais ça ne marche pas parce que si la 1ère condition est vérifiée, la vérification s'arrête. Voici la partie de mon code concernée :

// 1
if ($rep0=="oui")
{
echo '<div class="cadre1"><img src="img/perso/artistes_a.png"></div>';
}

// 1 & 2
elseif ($rep0=="oui" AND $rep1=="oui")
{
echo '<div class="cadre1"><img src="img/perso/artistes_a.png"></div>';
echo '<div class="cadre2"><img src="img/perso/artistes_b.png"></div>';
}

// 1 & 3
elseif ($rep0=="oui" AND $rep2=="oui")
{
echo '<div class="cadre1"><img src="img/perso/artistes_a.png"></div>';
echo '<div class="cadre3"><img src="img/perso/artistes_c.png"></div>';
}

// 1 & 4
elseif ($rep0=="oui" AND $rep3=="oui")
{
echo '<div class="cadre1"><img src="img/perso/artistes_a.png"></div>';
echo '<div class="cadre4"><img src="img/perso/artistes_d.png"></div>';
}

// 1 & 2 & 3
elseif ($rep0=="oui" AND $rep1=="oui" AND $rep2=="oui")
{
echo '<div class="cadre1"><img src="img/perso/artistes_a.png"></div>';
echo '<div class="cadre2"><img src="img/perso/artistes_b.png"></div>';
echo '<div class="cadre3"><img src="img/perso/artistes_c.png"></div>';
}

// 1 & 2 & 3 & 4
elseif ($rep0=="oui" AND $rep1=="oui" AND $rep2=="oui" AND $rep3=="oui")
{
echo '<div class="cadre1"><img src="img/perso/artistes_a.png"></div>';
echo '<div class="cadre2"><img src="img/perso/artistes_b.png"></div>';
echo '<div class="cadre3"><img src="img/perso/artistes_c.png"></div>';
echo '<div class="cadre4"><img src="img/perso/artistes_d.png"></div>';
}

// 2 & 3
elseif ($rep1=="oui" AND $rep2=="oui")
{
echo '<div class="cadre2"><img src="img/perso/artistes_b.png"></div>';
echo '<div class="cadre3"><img src="img/perso/artistes_c.png"></div>';
}

// 2 & 4
elseif ($rep1=="oui" AND $rep3=="oui")
{
echo '<div class="cadre2"><img src="img/perso/artistes_b.png"></div>';
echo '<div class="cadre4"><img src="img/perso/artistes_d.png"></div>';
}

// 2 & 3 & 4
elseif ($rep1=="oui" AND $rep2=="oui" AND $rep3=="oui")
{
echo '<div class="cadre2"><img src="img/perso/artistes_b.png"></div>';
echo '<div class="cadre3"><img src="img/perso/artistes_c.png"></div>';
echo '<div class="cadre4"><img src="img/perso/artistes_d.png"></div>';
}

// 3 & 4
elseif ($rep2=="oui" AND $rep3=="oui")
{
echo '<div class="cadre3"><img src="img/perso/artistes_c.png"></div>';
echo '<div class="cadre4"><img src="img/perso/artistes_d.png"></div>';
}

Où fais-je erreur ?
Un grand merci pour vos lumières ;-)

Re: Condition sur plusieurs variables

Posté : 05 avr. 2011, 10:36
par dev3
Bonjour,

Tu peux ajouter une condition
if $a == bleu et $b != bleu
action 1
else if $a == bleu et $b == bleu
action 2

Re: Condition sur plusieurs variables

Posté : 05 avr. 2011, 11:49
par abx66
Super, merci, je suis vraiment trop stupide de ne pas y avoir pensé !
Merci encore !

Re: Condition sur plusieurs variables

Posté : 05 avr. 2011, 13:21
par Mazarini
Bonjour,

Pourquoi ne pas prendre les choses autrement :
if ($rep0=="oui")  echo '<div class="cadre1"><img src="img/perso/artistes_a.png"></div>'; 
if ($rep1=="oui")  echo '<div class="cadre2"><img src="img/perso/artistes_b.png"></div>'; 
if ($rep2=="oui")  echo '<div class="cadre3"><img src="img/perso/artistes_c.png"></div>'; 
if ($rep3=="oui")  echo '<div class="cadre4"><img src="img/perso/artistes_d.png"></div>'; 

Re: Condition sur plusieurs variables

Posté : 05 avr. 2011, 13:37
par abx66
Bonjour,

Pourquoi ne pas prendre les choses autrement :
Bonjour,
Parce que j'ai besoin de vérifier jusqu'à 4 variables pour afficher de une à quatre de celles-ci, pas forcément dans l'ordre d'ailleurs.
Merci quand même de ton aide.

Re: Condition sur plusieurs variables

Posté : 06 avr. 2011, 22:23
par Ryle
Plutôt que d'ajouter des conditions inverses sur chaque test, il te suffit simplement d'organiser tes if() de la condition la plus stricte à celle qui l'est le moins :)
// d'abord les 4 critères
if ($rep0=="oui" AND $rep1=="oui" AND $rep2=="oui" AND $rep3=="oui") 
 ...
// puis les 3 critères
elseif ($rep0=="oui" AND $rep1=="oui" AND $rep2=="oui") 
 ...
elseif ($rep0=="oui" AND $rep1=="oui" AND $rep3=="oui") 
 ...
elseif ($rep0=="oui" AND $rep2=="oui" AND $rep3=="oui") 
...
elseif ($rep1=="oui" AND $rep2=="oui" AND $rep3=="oui") 
...
// puis les 2 critères
...
En effet, dès que l'un des if est vérifié, php l'exécute et ignore les suivants. En ordonnant ainsi tes conditions tu es sur qu'il ne rentre que dans la bonne condition :)

Ps : en php, plutôt que d'utiliser l'opérateur "AND", préfères l'opérateur "&&" ... ils sont légèrement différent (priorité) et à moins de savoir précisément pourquoi tu utilises le AND, il vaut mieux l'éviter car cela peut générer des erreurs difficile à identifier :)