2012-02-08 16 views
1

私は質問を以下のようにしてパスワードチェックとパスワードを行うことができます。 これまで、idという行IDを抽出しようとすると、別のときに0が返されます。そして、私が望んでいた文字列の代わりに2桁の数字を印刷するのと同じ方法でパスワードを印刷します。mysql_fetch_assoc()が私に間違った値を与えます

私は多かれ少なかれPHP初心者ですが、誰かが私のコードで何が間違っているのを見ることができますか?

$sql = 'SELECT pass FROM tbl_user WHERE email = "'.$email.'" LIMIT 1 ;'; 
$selection = mysql_query($sql); 

$r = mysql_fetch_assoc($selection); 
$user_id = $r['id']; 
print "user id is: " + $r['id']; 
print "user id is: " + $r['pass']; 
+3

注意: 'LIMIT'を使用する場合は、' ORDER BY'も指定することをお勧めします。結果は予測可能です。 'ORDER BY id LIMIT 1' –

+2

理論的に' LIMIT'は 'email'はこの場合ユニークでなければならないと考えるので、冗長です。 – Wiseguy

答えて

5

はあなただけSELECTパスワードをINGのです。代わりにprintを使用するのではなく、それを印刷に関しては

$sql = 'SELECT id, pass FROM tbl_user WHERE email = "'.$email.'" LIMIT 1 ;'; 

にクエリを変更し、echoを使用しています。また、代わりに+の、文字列を一緒に参加するために.を使用します。

$sql = 'SELECT id, pass FROM tbl_user WHERE email = "'.$email.'" LIMIT 1 ;'; 
+0

ありがとうございました。私はそれが可能なときに6分で正しい答えとしてフラグを立てます。 もう1つの質問ですが、私はブラウザではなくアプリでその応答をチェックしています。あなたはまだエコーが応答を表示するためのより良い選択だと思いますか? –

+1

'echo'と' print'は同じですが、 'print'がそれを印刷するかどうかをtrue/falseで返すことを除いて - ALMOSTでは、"何かを出力できる "使用されている。 'print'が失敗する可能性がある場合は' print'を使い、成功したかどうかを確認することができます。 – Joe

3

あなただけpass、ないid

使用このクエリを選択あなたの質問に。 idは返されません。

3

あなただけpassを選択している:

echo "user id is: " . $r['id']; 
echo "user id is: " . $r['pass']; 
関連する問題