2011-11-12 4 views
0

を行う他死ぬ私は、単純なIFを作るしようとしています:PHP5/MYSQL - VALUE1のIF = value2のは、コード

IF $un = mysql_result 
    die 
else 
    do some code. 

これは、同じ名前を持つ複数のユーザーを防ぐために、プロセス・フォームのためです。

$UNは、登録フォームからPHPの冒頭で宣言された変数です。あなたのif状態で

if ($result = '$UN') { 
    $errorMessage = "Name has been Taken"; 
    echo "User name is allready being Used, "; 
    $_SESSION['ERRMSG_ARR'] = $errormessage; 
    echo " Please Go Back and Try Again"; 
    //header("Location: register.php"); 
    exit(); 
} 
else { 
    echo "not taken -- "; 
} 

答えて

1

、比較を行うために二重の等号==を持つ単一の等号=を置き換える:

問題が取られて、それがない場合でも、すべてをヒット、です。さらに良い方法は、型を比較す​​るトリプルイコール演算子===を使用することです。

また、実際の値が比較に使用されるように、使用している変数$UNから引用符を削除してください。

+0

私はif($ result === $ UN){ともう一つの解決策 "if($ result == '$ UN"){両方とも不正確な値を返します –

+0

'if($ result == $ UN) $ UN) '? – AbdullahC

0

これは、比較演算子ではなく代入演算子であるため、すべてがヒットします。

if($result == '$UN') { 
// your code 
} 

$結果を文字列 '$ UN'と比較してもよろしいですか?これは、奇妙な文字に一致する。それをチェックしたいかもしれません。

+0

貼り付けたコードには、$ UNではなく、 '$ UN'が表示されます。囲み引用符は変数ではなく文字列になります。 2つの変数を比較するには、$ UNから引用符を削除します。 – OpenSorceress

+0

var_dump($ UN)とvar_dump($ result)を調べて、その内容を確認してください。正しい値が含まれていない場合は、割り当て方法を再確認してください。 – OpenSorceress

+0

- これは私の問題を解決しました - > \t if(mysql_num_rows($ result)> 0){ \t $ errorMessage21 = "名前を取得しました"; \t echo "ユーザー名は既に使用されています。"; \t $ _SESSION ['ERRMSG_ARR'] = $ errormessage21; \t echo「戻ってもう一度やり直してください。 \t // header( "Location:register.php"); \t exit(); \t} else { \t echo "not taken - "; \t} // < - そこに終わり –

関連する問題