Fonction if != et exit ?

Invité
Invité n'ayant pas de compte PHPfrance

01 févr. 2007, 11:12

Bonjour,

Je débute dans le php et j'ai besoin de votre aide sur ce code :
if ($jours!=3 && $credit!=0) { exit(); }
mysql_query("UPDATE membres SET credit=1 WHERE pseudo='$pseudo'") or die ('Erreur : '.mysql_error());
Donc,si la variable $jours est différente de 3 et $credit est différente de 0,l'update ne sera pas éxécuter ? mettre le " exit() " a coté est une bonne chose pour garantir la non exécution de l'update ?

Et pour finir, si $jour est = a 3 et $credit est = a 0, l'update sera éxécuter, c'est bien ca ?

merci beaucoup

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

01 févr. 2007, 12:28

Si la confition contenue dans ton IF est vraie, alors l'instruction qui le suit sera exécuté (en l'occurence le contenu de l'accolade)

Cette instruction est vraie SI $jours est différent de 3 ET $credit différent de 0.
Elle est donc fausse SI $jours est égale à 3 OU si $credit est égal à 0 (et l'update sera joué :))

Le exit() va interrompre l'exécution du code de manière brutale, ferme et définitive. Si tu as des instructions a passer après ce bout de code, elles ne seront donc pas jouées si tu fais appel au exit (c'est peut être ce que tu souhaites ?)

Pour ne pas interrompre le script, et garder ton test, il te suffit de modifier ton if :
if ($jours!=3 && $credit!=0) { // si le test est vrai
  // on ne fait rien
} 
else { // dans le cas contraire, on joue le update
  mysql_query("UPDATE ... ");
}
Ce que l'on peut également écrire en inversant la condition :
if ($jours==3 || $credit==0) { // si $jours est égale à 3 ou si $credit est égal à 0
  mysql_query("UPDATE ... ");
}
Ainsi le script n'est pas interrompu, et l'update n'est joué que si la condition est respectée :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 514 Messages

01 févr. 2007, 12:45

if ($jours==3 || $credit==0) { // si $jours est égale à 3 ou si $credit est égal à 0
  mysql_query("UPDATE ... ");
}
Hum, je suis pas sûr de moi mais ça serait pas plutôt ça :
if ($jours==3 && $credit==0) { // si $jours est égale à 3 ET si $credit est égal à 0
  mysql_query("UPDATE ... ");
}
mais j'ai la tête au fond du ... aujourd'hui.

ViPHP
ViPHP | 3607 Messages

01 févr. 2007, 12:54

non non non Ryle à raison...
L'inverse du ET logique est le OU
Modifié en dernier par jojolapine le 01 févr. 2007, 13:21, modifié 1 fois.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

01 févr. 2007, 13:01

Pareil que jojo, (A et B) n'est qu'un cas particulier de (A ou B), et n'est pas son contraire :)

Le contraire de (A ou B), c'est à dire !(A ou B) est bien (!A et !B) :
Le contraire de " l'un ou l'autre " est " ni l'un, ni l'autre " :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 514 Messages

01 févr. 2007, 13:03

voui c'est vrai ...

en meme temps, j'avais prévenu : j'ai la tête au fond du ...