2012-03-18 41 views
3

因此,我創建的網站需要人員註冊並登錄,並且我想知道如何在用戶登錄後顯示用戶的信息在?PHP如何在用戶登錄後從mysql表中選擇並顯示一行

我的會員專區頁面(members.php)的代碼如下:

<!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> 

然而,當我去到成員頁我登錄後,它只能在顯示用戶的電子郵件地址first echo(echo「your email is ...」。$ _ SESSION ['emailaddress'];)。上面用於選擇行中用戶數據的算法有問題嗎?

+0

你爲什麼在任何輸出之前調用會話啓動? – 2012-03-18 12:54:48

+0

如果您沒有收到錯誤,那麼您的查詢可能不會返回任何行。這意味着您正在搜索的電子郵件地址不存在於數據庫中。 – slash197 2012-03-18 12:55:30

+0

嗯,我剛剛檢查了數據庫,並且電子郵件地址似乎在那裏> _ <。 – r1nzler 2012-03-18 13:01:25

回答

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'];  

?> 

順便說一句查詢,檢索1行,當你不需要一個while語句循環。

一旦得到查詢,將其複製並直接在數據庫上運行,並使用MySQL GUI Tools或MySQL Workbench檢查結果,我相信你會發現問題;

  • 問候
+0

迴應查詢結果有什麼意義? – 2012-03-18 13:03:01

+0

犯了一個錯誤,現在編輯 – Adrian 2012-03-18 13:04:28

0

在14線在執行你忘了,包括與在$result數據庫連接的查詢。見下文。

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

$result = mysql_query("SELECT * FROM userinfo WHERE email='$user'",$con); 
相關問題