Insérer une Instruction If else dans une instruction existante
max-jacob
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
-
henkan Messages postés 342 Date d'inscription Statut Membre Dernière intervention -
henkan Messages postés 342 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai l'instruction ci-dessous qui fonctionne très bien en:
Lorsque la valeur est 0, elle affiche "La solution est incorrecte"
Lorsque la valeur est 1, elle affiche "La solution est correcte"
Combien même que j'ai prévu seulement la saisi des valeurs 1 et 2, certaine personne saisiront certainement une autre valeur que 0 et 1 dans le but peut-être d'afficher un Bug.
J'aimerais que si on saisi une valeur différent de 0 et 1, le système doit afficher "AUCUNE DONNEES".
J'ai pas pu modifier le code, merci de votre aide
J'ai l'instruction ci-dessous qui fonctionne très bien en:
<?php if ($etat = 0) //Le 0 est inséré dynamiquement. { echo "La solution est incorrecte"; } else echo "La solution est correcte"; ?>
Lorsque la valeur est 0, elle affiche "La solution est incorrecte"
Lorsque la valeur est 1, elle affiche "La solution est correcte"
Combien même que j'ai prévu seulement la saisi des valeurs 1 et 2, certaine personne saisiront certainement une autre valeur que 0 et 1 dans le but peut-être d'afficher un Bug.
J'aimerais que si on saisi une valeur différent de 0 et 1, le système doit afficher "AUCUNE DONNEES".
J'ai pas pu modifier le code, merci de votre aide
A voir également:
- Insérer une Instruction If else dans une instruction existante
- Insérer une vidéo dans powerpoint - Guide
- Insérer une signature sur word - Guide
- Insérer une liste déroulante excel - Guide
- Insérer une légende word - Guide
- Comment insérer une table des matières dans word - Guide
4 réponses
Bonjour,
il est possible de faire une instruction else if, qui revient à remettre un if dans un else, mais est beaucoup plus propre.
Tu peux donc tester si $etat vaut 0 ou 1, et sinon écrire aucune données.
A noter, que le code donné ne marchera pas comme voulu, car dans ton if, tu écris :
Pour tester une égalité, il te faut un double égal (==) ou un triple (===). Le double ou triple égale fait une instruction logique : est-ce que a est égale à b ? (Avec pour différence que le triple égal renvoie true seulement si le type de a est le même que le type de b). Tandis qu'un simple égale fait : a prend la valeur b.
Pour revenir à ton code, tu peux faire cela :
il est possible de faire une instruction else if, qui revient à remettre un if dans un else, mais est beaucoup plus propre.
Tu peux donc tester si $etat vaut 0 ou 1, et sinon écrire aucune données.
A noter, que le code donné ne marchera pas comme voulu, car dans ton if, tu écris :
if ($etat = 0)Or ce code, même dans un if, donne la valeur 0 à la variable $etat.
Pour tester une égalité, il te faut un double égal (==) ou un triple (===). Le double ou triple égale fait une instruction logique : est-ce que a est égale à b ? (Avec pour différence que le triple égal renvoie true seulement si le type de a est le même que le type de b). Tandis qu'un simple égale fait : a prend la valeur b.
Pour revenir à ton code, tu peux faire cela :
if ($etat == 0)
echo "La solution incorrecte";
else if ($etat == 1)
echo "La solution est correcte";
else
echo "Aucune données";
J'obtiens un message d'erreur avec ce code:
<?php
if ($etat == 0) // Le message d'erreur indique cette ligne.
echo "La solution incorrecte";
else if ($etat == 1)
echo "La solution est correcte";
else
echo "Aucune données";
?>
NB: La valeur 0 et 1 est insérer dynamiquement avec un echo php depuis une base de donnée, donc pas la peine de faire deux instructions avec le 0 et le 1. Mais plutôt ajouter une instruction qui dit: si la valeur est différent de 0 et de 1 affiché aucune donnée.
<?php
if ($etat == 0) // Le message d'erreur indique cette ligne.
echo "La solution incorrecte";
else if ($etat == 1)
echo "La solution est correcte";
else
echo "Aucune données";
?>
NB: La valeur 0 et 1 est insérer dynamiquement avec un echo php depuis une base de donnée, donc pas la peine de faire deux instructions avec le 0 et le 1. Mais plutôt ajouter une instruction qui dit: si la valeur est différent de 0 et de 1 affiché aucune donnée.
J'ai défini une variable donc plus de message d'erreur. En effet votre code résout le problème mais les valeurs sont saisis depuis un formulaire. Voici le vrai code source:
<?php
$etat = "calcul";
if ($etat == $row_transac['zotikwa_paye'])
{
echo "Ce Transfert est déja payé. Ne procédez pas au Paiement";
}
else
echo "Ce Transfert nest pas encore payer. <br><a href=\"pay.php?id=".$row_transac['toka_id']."\">>>Cliquer ici pour procedez au paiement<<</a>";
?>
Il s'agit d'un système de transfert d'argent basé sur une application web du type western-union. Le problème avec mon système c'est qu'un bénéficiaire peut se rendre dans plusieurs agences et être servit avec un seul code de transfert.
Le système marche a perfection,
- si on entre un code de transfert impayé, le système l'indique à l'agent qui doit le payer avec un lien vers la page de paiement.
- si un transfert est déjà payé, le système indique clairement à l'agent que le transfert portant ce code est déjà payé et qu'il ne doit pas procéder au paiement, le lien vers la page de paiement ne sortira pas. Tout est OK jusque là.
- Maintenant le problème se trouve ici: il peut se trouver qu'une personne se trompe et nous apporte un code de transfert issu d'un autre système de transfert du genre: western-union, money-gram, etc Bref un code qui n'est pas présent dans la base de donnée, le système n'affiche rien et indique que "le transfert n'est pas payer que l'agent doit proceder au paiement" or ce qui est un Bug.
Mon système doit clairement indiquer "AUCUNE DONNEES"
Comme vous pouvez le voir dans le code source ci-haut, les valeurs (code de transfert que je fesait le test avec 0 et 1) sont insérer dynamiquement donc pas la peine de faire des instruction séparer mais juste une instruction qui affiche "AUCUNE DONNEE" lorsque la valeur saisi ne figure pas dans la base de données.
Désolé si j'ai pas bien exposé la situation au départ.
<?php
$etat = "calcul";
if ($etat == $row_transac['zotikwa_paye'])
{
echo "Ce Transfert est déja payé. Ne procédez pas au Paiement";
}
else
echo "Ce Transfert nest pas encore payer. <br><a href=\"pay.php?id=".$row_transac['toka_id']."\">>>Cliquer ici pour procedez au paiement<<</a>";
?>
Il s'agit d'un système de transfert d'argent basé sur une application web du type western-union. Le problème avec mon système c'est qu'un bénéficiaire peut se rendre dans plusieurs agences et être servit avec un seul code de transfert.
Le système marche a perfection,
- si on entre un code de transfert impayé, le système l'indique à l'agent qui doit le payer avec un lien vers la page de paiement.
- si un transfert est déjà payé, le système indique clairement à l'agent que le transfert portant ce code est déjà payé et qu'il ne doit pas procéder au paiement, le lien vers la page de paiement ne sortira pas. Tout est OK jusque là.
- Maintenant le problème se trouve ici: il peut se trouver qu'une personne se trompe et nous apporte un code de transfert issu d'un autre système de transfert du genre: western-union, money-gram, etc Bref un code qui n'est pas présent dans la base de donnée, le système n'affiche rien et indique que "le transfert n'est pas payer que l'agent doit proceder au paiement" or ce qui est un Bug.
Mon système doit clairement indiquer "AUCUNE DONNEES"
Comme vous pouvez le voir dans le code source ci-haut, les valeurs (code de transfert que je fesait le test avec 0 et 1) sont insérer dynamiquement donc pas la peine de faire des instruction séparer mais juste une instruction qui affiche "AUCUNE DONNEE" lorsque la valeur saisi ne figure pas dans la base de données.
Désolé si j'ai pas bien exposé la situation au départ.
Bjour & merci de votre réaction. j'obtiens un message d'erreur si je double le signe égale (=)