J'utilise if/elseif/else pour générer un texte sous différentes conditions. Voici le code que j'utilisais au début:
if ($image_gen="AV") {$type="une étoile blanche de la séquence principale";}
elseif ($image_gen="BV"or"BIV") {$type="une étoile bleue massive";}
elseif ($image_gen="FI"or"GI") {$type="une géante jaune";}
elseif ($image_gen="KI"or"MI") {$type="une géante rouge";}
elseif ($image_gen="FIV"or"GIV"or"KIV") {$type="une sous-géante";}
elseif ($image_gen="FV") {$type="une naine jaune-blanche";}
elseif ($image_gen="GV") {$type="une naine jaune";}
elseif ($image_gen="KV") {$type="une naine orange";}
elseif ($image_gen="MV") {$type="une naine rouge";}
elseif ($image_gen="PSR") {$type="un pulsar";}
elseif ($image_gen="WD") {$type="une naine blanche";}
elseif ($image_gen="sdB") {$type="sous-naine chaude";}
elseif ($image_gen="GVGV") {$type="une étoile binaire constituée de deux naines jaunes";}
elseif ($image_gen="GVMV") {$type="une étoile binaire constituée d'une naine jaune et d'une naine rougge";}
elseif ($image_gen="KVMV") {$type="une étoile binaire constituée d'une naine orange et d'une naine rouge";}
elseif ($image_gen="MIMV") {$type="une étoile binaire constituée d'une géante rouge et d'une naine rouge";}
elseif ($image_gen="MVMV") {$type="une étoile binaire constituée de deux naines rouges";}
elseif ($image_gen="sdBMV") {$type="une étoile binaire constituée d'une sous-naine chaude et d'une naine rouge";}
elseif ($image_gen="WDMV") {$type="une étoile binaire constituée d'une naine blanche et d'une naine rouge";}
elseif ($image_gen="PSRWD") {$type="une étoile binaire contituée d'un pulsar et d'une naine blanche";}
else {$type="une étoile dont les caractéristiques sont encore peu connues";}
echo"
$star_name est $type
";
Le problème est que l'opération s’arrête au "if" et le considère comme VRAI alors que c'est rarement le cas.par exemple pour l'étoile 42 Dra ça me donne:
Alors que $image_gen="KI". En coupant tout les elseif, j'obtiens toujours le même résultat.42 Dra est une étoile blanche de la séquence principale
Je me suis alors dit qu'en écrivant $image_gen="AV" dans la condition je la rendais vraie. chose que j'ai vérifiée en écrivant echo"$image_gen";, ce qui me donnait toujours AV. J'ai alors changé les = en == et ça a avancé... mais pas de beaucoup. Cette fois ci echo"$image_gen"; me donne ce qu'il faut... mais le code ne marche toujours pas, cette fois ça s’arrête à la deuxième étape, ça m'écrit toujours "$star_name est une étoile bleue massive".
Je me suis dit que c'est peut être le "ou" qui gène, je l'ai enlevé et ça ne change rien.
Pouvez vous m'aider s'il vous plait?