簡體   English   中英

當用戶使用電子郵件登錄時從表中獲取用戶名

[英]Getting User's name from table when they login with e-mail

用戶表設置為:ID | 姓名| 電郵| 密碼

然后他們登錄:

電郵| 密碼

我想知道當他們使用電子郵件登錄時如何顯示他們的“姓名”。 到目前為止,與電子郵件兼容的是:

session_start();

if (!isset($_SESSION['email'])) {
    header('location: ');
}

include_once('config.php');

$email = $_SESSION['email'];

<!doctype html>
<body> 
    <p><?php echo $email; ?>

可行,但是當我嘗試類似

$sql = "SELECT name FROM $table WHERE email='$_SESSION["email"]'";
$result = mysql_query($sql);

<!doctype html> 
<body>
    <p><?php echo $result; ?></p>

那行不通。 任何幫助表示贊賞

您沒有從數據庫獲取結果,請使用以下行

mysql_result($result ,0);

您可以使用上述功能。請參閱php手冊以從數據庫中獲取結果

您確實應該包括更多信息,例如,嘗試包含的代碼時出現什么錯誤。 然而,

看起來您沒有正確轉義字符串$ sql。 嘗試類似:

$sql = "SELECT name FROM $table WHERE email='" . $_SESSION["email"] . "'";

請注意連接字符串的點(。),而不是像您嘗試那樣在字符串內部求值。

如果您確實想在字符串中輸入數組索引,則可以使用{}將變量括起來

$sql = "SELECT name FROM $table WHERE email='{$_SESSION["email"]}'";

mysql_query()只返回一個資源 ,該資源需要傳遞給mysql_fetch_array()來處理返回的記錄; http://php.net/manual/zh/function.mysql-query.php有一些示例

像這樣做:

$sql = "SELECT name FROM $table WHERE email=".$_SESSION['email'];
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
$name = $row['name'];

<!doctype html> 
<body>
    <p><?php echo $name; ?></p>

問候,

Akke

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM