If et Else, problème !

Invité
Invité n'ayant pas de compte PHPfrance

27 déc. 2006, 19:43

Hello,

Est ce que quelqu'un pourrait me corriger ce petit bout de code car quelques erreurs y sont présentes et je ne les trouve pas (j'y connait rien) !:
<?php
if($valide==0) 
      mysql_query("UPDATE membres SET valide=1 WHERE pseudo='$pseudo'") or die ('Erreur : '.mysql_error());
echo 'Compte valide'; 
{
echo 'compte non valide';
}
mysql_close ();  
?> 
Par avance,merci :wink:

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

27 déc. 2006, 19:44

Les messages d'erreurs généralement ça aide pour trouver

Et pour apprendre, la doc est très utile :
http://fr.php.net/if
http://fr.php.net/else

Un coup d'oeil sur les exemple devraient t'orienter. parceque si tu ne peux pas corriger tes if/else tout seul, tu es mal barré pour continuer à coder :)

HD
Mammouth du PHP | 1181 Messages

27 déc. 2006, 19:49

<?php
if($valide=='0') {
      mysql_query("UPDATE membres SET valide='1' WHERE pseudo='$pseudo'") or die ('Erreur : '.mysql_error());
echo 'Compte valide'; 
}
else 

echo 'compte non valide';

mysql_close ();  
?> 
Modifié en dernier par HD le 27 déc. 2006, 22:22, modifié 1 fois.
"Si Dieu descendait sur la Terre, tous les peuples se mettraient a genoux, excepte les Français qui diraient : " Ah ! Vous êtes la ! C'est pas trop tôt ! On va pouvoir discuter un peu !" [Michel Balfour]

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

27 déc. 2006, 22:21

Merci HD, deux accolades manquantes je pense en effet qu'il n'aurait pas pu trouver seul et que j'ai été bien stupide de renvoyer vers la doc.

=D>


:?

Par contre ami Invité, prends l'habitude à l'avenir de nous donner les messages d'erreurs quand tu en as, pour qu'on puisse t'aider plus facilement.

Eléphanteau du PHP | 23 Messages

27 déc. 2006, 22:33

Bonjour à tous :)

Juste un petit mot en passant : le code if($valide == '0') peut être avantageusement remplacé par : if (!$valide) ;)
>> Newbie-Project <<
Essayez le Newbie-Directory (nouveau)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 déc. 2006, 23:07

Avantageusement, je ne suis pas sûr :-k

Qu'est ce qui nous dit qu'une prochaine évolution de PHP ne va pas inverser cette manière de tester ? ;)
De manière plus générale, je préfère etre le plus explicite possible pour éviter les soucis :D
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

27 déc. 2006, 23:24

Qu'est ce qui nous dit qu'une prochaine évolution de PHP ne va pas inverser cette manière de tester ? ;)
J'espère pas :x
Je serais bon pour des nuits blanches :cry:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Invité
Invité n'ayant pas de compte PHPfrance

28 déc. 2006, 12:39

Cela m'étonnerait beaucoup, d'autant que cette synthaxe est -pour moi en tout cas- plus aisée à lire :

avant => "Si $valide == 0" :shock:
après => "Si pas $valide" 8)

Je préfère de loin la deuxième version :lol:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

28 déc. 2006, 12:48

Pour moi, le soucis se situe ici
si pas $valide peut signifier
  • si $valide == 0
  • si $valide == ''
  • si $valide == FALSE
  • ...
Ce qui n'est pas explicite et peut cacher une erreur dans le développement. Une fonction qui retourne '' au lieu de '0' a cause d'une mauvaise gestion d'erreur.

Alors qu'avec
si $valide == '0', je suis sûr de ce que contient $valide ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

28 déc. 2006, 12:52

Mieux vaut être rigoureux dans ton code.

if (!$valide) équivaut à if ($valide==false)

Le reste n'est qu'assimiliation abusive et peut entraîner des bugs.