2012-02-10 14 views
1

こんにちは、私はここに、以下のPHPコードを持って働いていません1.ここで本当に小さいものを逃してしまったのですか?PHPのmysql_fetch_assocは

編集:okユーザー名をuser_levelに変更しましたが、何も取得できません。 whileループのエコーは何も出力しません。

edit2:リソースID#5という$結果を出力したときに私は言いました。

編集3:(2/10/2012):ちょうど皆さんに知ってもらうために、ユーザー名を取得するのは間違いでした。私はuserテーブルのユーザーからuser_levelを取得するつもりでした。

クエリの出力は次のとおりです。 クエリは、ユーザー名= 'spankerer' ANDパスワード= '246b8ae01899a116369ddcba84f425fd'

ますprint_r($行)からこの値SELECT USER_LEVELです。 whileループでは表示されません。

edit 4:cmdからmysqlクエリを実行すると、忘れてしまいました。私はuser_levelのテーブルを1にして正しいものを表示します。

$query = "SELECT user_level, username FROM user WHERE username='$username' AND password='$password'"; 

EDIT

としても、あなたのクエリをエコーのようにあなたの選択クエリがあるべき

+0

実際の(フル)出力とは何ですか? – Josh

+6

クエリで 'user_level'カラムを選択していません。 – Wiseguy

答えて

0

だから、私が20であることを、ユーザーがパスワードを入れたときに、PHPはそれをハッシュし、32文字に一致しようとするパスワードの最大文字数を設定し

...私のデータベースの問題だったようですデータベースの20文字のキーを持つキー。

2

$query = "SELECT user_level, username FROM user WHERE username='$username' AND password='$password'"; 
echo $query; 

データベースで同じクエリを実行し、それはあなたに何を与えるかどうかを確認? はまた、whileループでは、まず

while($row = mysql_fetch_assoc($result)){ 
    print_r($row); 
    } 

を行うと、uは、直接クエリの実行から取得するのと同じ出力が表示されます。

+0

私はuser_levelも照会しましたが、whileループは1の期待値を出力していません。 $結果はリソースID#5です。私はwhileループにエコーを入れて、whileループに入るように見えないので、私のステートメントで何かが間違っている可能性がありますか? – Recur

+0

@Recurも私の編集を参照してください。 – Astha

+0

2/10/2012の編集を参照してください。この助けてくれてありがとう! – Recur

1

だけUSER_LEVELを問い合わせる必要がありますあなたのクエリ:

$query = "SELECT user_level FROM user WHERE username='$username' AND password='$password'"; 

EDIT:

while($row = mysql_fetch_assoc($result)){ 
    echo 'another output to test'.$row['user_level'].'<br/>'; 
} 

while($row = mysql_fetch_array($result)){ 
    echo 'another output to test'.$row['user_level'].'<br/>'; 
} 

へ:あなたからあなたのwhileループを変更した場合

が、それは動作します

1

select引数では、 "user_level"という名前のカラムを取得する必要があります。これはクエリにはありません。

関連する問題