2011-12-28 9 views
0

$usernameは、ログインしたユーザーのユーザー名です。ユーザ名を指定してデータベースからユーザIDを取得しようとしていますが、このMySQLクエリの何が問題なのですか?

$username_query = mysql_query("SELECT userid from registerusers WHERE username = '$username'"); 
$username_id = mysql_fetch_row($username_query); 

私は別のクエリで$username_idを使用しようとしていると、ページ内のプリントアウトでテストしていて、それは常に「アレイ」を返します。私はMySQLには本当に悪いですし、私が行った多くの調査では複雑な回答が得られました。私は問題に固有の回答を得たいので、これを本当に理解しています。 「悪い」質問。

+0

'print_r($ username_id)'の中身を調べてみてください – ianace

答えて

1

mysql_fetch_*()ファンクションは、取得したデータのROW全体を表す配列またはオブジェクトを返します。その行は単一の値で構成されています。

ユーザーID値は、実際にあなたが他のクエリで$username_id[0]を使用する必要があります$username_id[0]

+0

ああ、意味があります。好奇心の外に、これは「ベストプラクティス」と考えられているのですか、それとも個々の価値を引き出すことができる他の機能がありますか? –

+0

標準のmysql _ *()関数ではなく、結果セットから直接1つの値をフェッチするためのショートカット関数を持つDBライブラリがあります。だから唯一の練習なので、これはベストプラクティスです。フェッチ呼び出しのために '$ result'のようなより良い変数名を使うことに変えることをお勧めします。次に、 '$ user_id = $ result [0]';を実行できます。それを明白に後で明らかにする。 –

+0

お役立ち情報ありがとう! –

1

になります。

関連する問題