2015-09-10 5 views
0

J'ai essayé de prendre le niveau de l'utilisateur de ma base de données, et de vérifier quel est le niveau de l'utilisateur. Quand j'essaye de faire ceci:PHP Exception: multi-opérateurs

include "../web/config.php"; 
      $adminTrueQuery = mysql_query("SELECT * FROM `users` WHERE `Username` = '$admin_username' AND `Password` = '$admin_password' LIMIT 1;"); 
      $adminLevel = mysql_fetch_array($adminTrueQuery); 
      $adminLevel = $adminLevel['Level']; 
      if($adminLevel !== "c" || "b") { 
       throw new Exception ("You don't admin {$adminLevel}"); // return 
      } 

Je reçois une erreur. Et

$adminLevel = "c"; 

Quel est le problème?

Répondre

4

Ce n'est pas comme ça que les comparaisons multiples fonctionnent en PHP. Vous devez vérifier les deux valeurs contre votre valeur d'origine:

if($adminLevel !== "c" && $adminLevel !== "b") { 

Ou, si vous avez beaucoup de valeurs pour vérifier, utiliser in_array():

if(!in_array($adminLevel, ['b','c'])) { 

$adminLevel = "c"; ne fonctionnera pas parce que = est une mission opérateur et non un opérateur de comparaison. Cela reviendra toujours vrai si la valeur que vous essayez de comparer type jongle avec une valeur véridique (ce que font vos valeurs).

+0

Je l'ai attaché .. Cela ne fonctionne pas. – UnderPhp

+0

Oui, c'est le cas. Réessayer. Copiez et collez si vous devez. –

+0

Je n'ai pas essayé le tableau .. attendez – UnderPhp