【问题标题】:get ID for a specific user in mysql database in PHP在PHP中获取mysql数据库中特定用户的ID
【发布时间】:2016-03-11 02:52:21
【问题描述】:

当用户登录时,我想从 there 帐户回显 ID(由于 phpMyAdmin 中的 auto_increment 而创建),这是我的 login.PHP:

<?php

$conn = mysqli_connect("xxxxxx", "xxxxx", "xxxx", "BuyerAccounts");

$Email = $_POST["Email"];
$Password = $_POST["Password"];


$sql_query = "select Buyer_Email from user_info where Buyer_Email like '$Email' and Buyer_Password like '$Password';";

$result = mysqli_query($conn, $sql_query);

if(mysqli_num_rows($result) > 0 ){

$row = mysqli_fetch_assoc($result);
$name = $row["Buyer_Email"]; 
echo "Welcome: Buyer";

}else{
$int = 1;
//echo "Buyer login failed...";
}
}else{
echo "Login failed...";
}
}


mysqli_stmt_close($statement);

mysqli_close($conn);


?>

【问题讨论】:

  • SELECT ID, Buyer_Email FROM ...(将 ID 替换为您的 id 字段名称)
  • ID 是我的数据库中字段的名称,之后我只是回显 ID 因为我不想选择它我想在用户登录并输入数字时抓取它一个变量,所以我可以回显它
  • 选择后您可以将其放入变量中,也可以放入电子邮件中
  • @user6042879 我回答你的问题了吗?如果没有,我可以添加什么?

标签: php mysql database mysqli


【解决方案1】:

在您的 sql 查询中添加列名 id。假设您的 id 列名是 ID

$sql_query = "select ID,Buyer_Email from user_info where Buyer_Email like '$Email' and Buyer_Password like '$Password';";
$result = mysqli_query($conn, $sql_query);

if(mysqli_num_rows($result) > 0 ){

$row = mysqli_fetch_assoc($result);
$name = $row["Buyer_Email"]; 
$user_id =  $row['ID'];
echo $user_id;
echo "Welcome: Buyer";

}

由于您在 php 中进行登录,因此使用 $_SESSION 是一个不错的选择。 您需要做的就是在需要使用会话的任何 php 脚本的顶部添加 session_start();

<?php
session_start();
$conn = mysqli_connect("xxxxxx", "xxxxx", "xxxx", "BuyerAccounts");

$Email = $_POST["Email"];
$Password = $_POST["Password"];
 $sql_query = "select ID,Buyer_Email from user_info where Buyer_Email like '$Email' and Buyer_Password like '$Password';";

    $result = mysqli_query($conn, $sql_query);

    if(mysqli_num_rows($result) > 0 ){

    $row = mysqli_fetch_assoc($result);
    $name = $row["Buyer_Email"]; 
    $user_id =  $row['ID'];

    //using session
    $_SESSION["user_id"] = $user_id;

    echo $user_id;
    echo "Welcome: Buyer";

    }

现在您可以使用 $_SESSION 变量访问 php 脚本中的任何位置。

echo $_SESSION["user_id"] ;

【讨论】:

  • @ProgrammingTree 谢谢。你的回答也很好,为什么我也赞成它。 :D
【解决方案2】:

让我们从头开始。您创建一个登录表单,根据值存储会话:

login.php

session_start();
$_SESSION["username"] = $username;

主页面

$username = $_SESSION["username"];
echo "Hi $username";

编辑 2

好的,所以你想检查用户名是否存在,然后回显他们的 ID。无论如何,几乎所有的登录系统都有会话。

登录后,假设您有一个 id$_SESSION

php

session_start();
$id = $_SESSION["id"];

$db = mysqli_connect("xxxxxx", "xxxxx", "xxxx", "BuyerAccounts");
$check = $db->query("SELECT * FROM users WHERE id='$id'"); 
$num_check = $check->num_rows; 
$fetch_check = $check->fetch_object();
$id2 = $fetch_check->id;

if($num_check) {
// User Exists
echo $id2; 
} else {
echo "You don't exist."
} 

请注意,通常情况下,我只会回显$id。但是,OP 要求从数据库中回显 id,所以我回显了 $id2

【讨论】:

  • OP 想要从数据库中“回显 ID”。登录基于电子邮件和密码。用户名不存在(在 OP 问题中,可能在 db 中存在)。
  • 在我的代码中我检查用户是否存在,然后我想得到那里的 ID
  • @user6042879 请查看更新后的代码。这回答了你的问题了吗?如果没有,我可以添加什么?
  • 其他人回答了它,但感谢您的更新,像您这样努力工作的人就是为什么它如此出色的网站,所以我感谢您
猜你喜欢
  • 2023-03-29
  • 2016-12-31
  • 2013-06-09
  • 1970-01-01
  • 2015-03-16
  • 1970-01-01
  • 2017-12-27
  • 2018-01-18
  • 1970-01-01
相关资源
最近更新 更多