Page 1 sur 1
If et Else, problème !
Posté : 27 déc. 2006, 19:43
par Invité
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

Posté : 27 déc. 2006, 19:44
par ouckileou
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

Posté : 27 déc. 2006, 19:49
par HD
<?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 ();
?>
Posté : 27 déc. 2006, 22:21
par ouckileou
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.
Posté : 27 déc. 2006, 22:33
par MS-DOS_1991
Bonjour à tous
Juste un petit mot en passant : le code if($valide
== '0') peut être avantageusement remplacé par :
if (!$valide) 
Posté : 27 déc. 2006, 23:07
par zeus
Avantageusement, je ne suis pas sûr
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

Posté : 27 déc. 2006, 23:24
par Truc
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
Je serais bon pour des nuits blanches

Posté : 28 déc. 2006, 12:39
par Invité
Cela m'étonnerait beaucoup, d'autant que cette synthaxe est -pour moi en tout cas- plus aisée à lire :
avant => "
Si $
valide == 0"
après => "
Si pas $
valide" 8)
Je préfère de loin la deuxième version

Posté : 28 déc. 2006, 12:48
par zeus
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

Posté : 28 déc. 2006, 12:52
par albat
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.