2013-06-12 29 views
1

現在我創建了一個帶有會話的登錄表單,現在我需要的是當用戶使用其用戶名和密碼登錄時,獲取他的數據(如名稱,關於等等)並將它在歡迎頁面。在PHP中獲取特定用戶的數據

目前我創造了這個代碼,但是這個代碼得到所有用戶的數據,

<?php 
mysql_connect("localhost", "root", "") or die(mysql_error()); 
mysql_select_db("usersdata") or die(mysql_error()); 
$data = mysql_query("SELECT * FROM userid") 
or die(mysql_error()); 
Print "<table border cellpadding=3>"; 
while($info = mysql_fetch_array($data)) 
{ 
Print "<tr>"; 
Print "<th>Name:</th> <td>".$info['Name'] . "</td> "; 
Print "<th>Username:</th> <td>".$info['Email'] . " </td></tr>"; 
} 
Print "</table>"; 
?> 

我希望能找到一個方法來做到這一點。 :d

+0

你有什麼問題?這些表甚至包含用戶數據? –

+0

你的數據庫用戶表真的叫做「userid」嗎?他們是否包含「名稱」和「電子郵件」列? – Freddie

+0

'SELECT * FROM userid WHERE username =?' – Sean

回答

0

既然你已經創建了會話的登錄表單,那麼你得到的這樣登錄的用戶當前的數據:

$_SESSION['userid']:應在登錄頁面填寫。 $_SESSION['userid'] = $id

瞭解更多關於會議:PHP Sessions W3schools

然後:

$query= mysql_query("SELECT * FROM `userid` WHERE `id` = '".$_SESSION['userid']."' ")or die(mysql_error()); 
$arr = mysql_fetch_array($query); 
$num = mysql_numrows($query); //this will count the rows (if exists) 

HTML

<html> 
//... 
<?php if($num > 0){ ?> 
<table border="1" cellpadding="3"> 
<tr><td colspan="2" align="center">Your Info</td></tr> 
<tr> 
<td>Name: <?php echo $arr['Name']; ?></td> 
</tr> 

<tr> 
<td>Email: <?php echo $arr['Email']; ?></td> 
</tr> 
</table> 
<?php }else{ ?> 
User not found. 
<?php } ?> 
//... 
</html> 
+0

非常感謝您的幫助很大, 問候 艾哈邁德·法特希· –

+0

您的歡迎,我也建議將表格重命名爲'users',將所有列名稱更改爲低字母'email'而不是'Email'。 閱讀更多關於它[鏈接](http://www.codeproject.com/Articles/22947/A-Naming-Scheme-for-Database-Tables-and-Fields) –

1

雖然你應該使用mysqli_延伸,而不是mysql_,你想是這樣的:

$result = mysql_query("SELECT * FROM userid WHERE username = '" . $username . "'") 
    or die(mysql_error()); 
if(mysql_num_rows($result) == 1) { 
    //Found the user 
    $row = mysql_fetch_array($result); 
    //Results can be accessed like $row['username'] and $row['Email'] 
} else { 
    //Too few or too many records were found 
} 

注:我用的用戶名=「$用戶名」作爲一個例子。因爲ID是指特定的行,所以最好從登錄過程中跟蹤用戶的ID。

+0

謝謝雅各布試圖幫助我;你的幫助是有用的最好的問候艾哈邁德法蒂 –

0

您的示例代碼檢索數據庫中的所有用戶,並使用while循環循環數據。

要獲取已登錄的用戶,您需要更改提取數據的查詢。 我假設你有你的表的主鍵,並知道ID,因爲用戶已經登錄。

$data = mysql_query("SELECT * FROM userid WHERE id={$userid}"); 
$info = mysql_fetch_array($data); 
echo $info['Name']; 

$信息現在將包含所有的用戶信息1個用戶,您需要填寫用戶ID $從用戶實際的ID登錄。

+0

謝謝邁克爾你的幫助;幫助我,最好的問候艾哈邁德·法特希· –

+0

不客氣:) – Michael

0

$data = mysql_query("SELECT * FROM userid")

應該

$data = mysql_query("SELECT * FROM userid WHERE Name='$selectedName'") 

當然,你需要定義$selectedName

我也建議你閱讀http://dev.mysql.com/doc/refman/5.0/en/select.html瞭解一些基礎知識。

+0

感謝您想幫助我,謝謝,最良好的祝願艾哈邁德·法特希· –

相關問題