2012-03-18 14 views
3

私はサインアップしてログインする必要があるサイトを作っています。ログを記録した後にユーザの情報を表示する方法が不思議でしたに?私は私がログインした後、メンバーのページに行くと、それだけでは、ユーザーのメールアドレスが表示され、しかしPHPユーザがログインした後にmysqlテーブルから行を選択して表示する方法

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 

<? 
session_start(); // the session variable in the login form is $_SESSION['emailaddress'] 
?> 


<html> 
<head> 

</head> 
<body> 

<?php 

echo "your email is... ".$_SESSION['emailaddress']; // i used only one session variable 

$user=$_SESSION['emailaddress']; 


$result = mysql_query("SELECT * FROM userinfo WHERE email='$user'"); 

while($row = mysql_fetch_array($result)) 
    { 
    echo $row['firstname'] . " " . $row['lastname'] . " " . $row['password']; 
    } 

?> 


</body> 
</html> 

私のメンバーエリアページ(members.php)のコードは次のようです最初のエコー(echo "あなたのメールは..." $ _ SESSION ['emailaddress'];)。行のユーザーのデータを選択するために使用される上記のアルゴリズムに問題がありますか?

+0

出力開始前にセッション開始を呼び出すのはなぜですか? –

+0

エラーが発生しない場合は、クエリによって行が返されない可能性があります。つまり、検索しているメールアドレスがデータベースに存在しないことを意味します。 – slash197

+0

ええと、私はちょうどデータベースをチェックし、電子メールアドレスはそこにあるようです> _ <。 – r1nzler

答えて

1

最適な回避策は、最初の1行を取得する際ところで、あなたはしばらくの文ループを必要としないブラウザで

$query = "SELECT * FROM userinfo WHERE email='$user'"; 
echo $query; 
$result = mysql_query($query); 



$row = mysql_fetch_array($result); 
echo $row['firstname'] . " " . $row['lastname'] . " " . $row['password'];  

?> 

をクエリを印刷することです。

クエリを取得したら、それをコピーしてデータベース上で直接実行し、MySQL GUIツールまたはMySQL Workbenchで結果を確認してください。問題が見つかるはずです。 14行目で

  • よろしく
+0

クエリの結果をエコーする際のポイントは何ですか? –

+0

が間違って編集されました – Adrian

0

あなたは$resultにデータベースとの接続を含めるのを忘れてクエリの実行中に。下記参照。

$con=mysql_connect(hostname,username,password,databasename); 

$result = mysql_query("SELECT * FROM userinfo WHERE email='$user'",$con); 
関連する問題