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 :wink:

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 :-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

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 :x
Je serais bon pour des nuits blanches :cry:

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" :shock:
après => "Si pas $valide" 8)

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

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.