【问题标题】:How to get data for specific user, but from different table如何获取特定用户的数据,但来自不同的表
【发布时间】:2014-12-14 23:46:45
【问题描述】:

我想在用户 1 登录后立即显示数据库 A 中的数据,现在页面显示表中的所有数据。

目前我有 2 个表,分别用于 用户登录用户事务。所以在他们登录后,我希望他们能够查看自己的记录。搜索后,我认为它与会话有关。

有人可以帮助我吗?

connection.php

<?php
$mysql_host = "localhost";
$mysql_user = "root";
$mysql_pass = "";
$mysl_database = "mockup";

$conn = mysql_connect($mysql_host, $mysql_user, $mysql_pass);
mysql_select_db($mysl_database, $conn);
?>

login.php

<?php
include("connection.php");

if(isset($_POST["submit"])) {
$username = $_POST["username"];
$password = $_POST["password"];

$sql = "SELECT * FROM user
        WHERE username='$username' AND password='$password'";
$result = mysql_query($sql);
$numRows = mysql_num_rows($result);
if($numRows==1) {
    session_start();
    $_SESSION["ID"] = $ID;
    header("Location: ./profile_page.php");
} else {
    echo "Invalid Login Information";   
}
}
?>

<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">
<table>
<tr><td>User Name</td><td><input type="text" name="username" /></td></tr>
<tr><td>Password</td><td><input type="password" name="password" /></td></tr>
<tr><td></td><td><input type="submit" name="submit" value="Login" /></td></tr>
</table>
</form>

profile_page.php

<?php
session_start(); // start the session
include("connection.php");

$ID = $_SESSION["ID"]; // store the user id into session

$sql = "SELECT * FROM transaction WHERE ID='$ID'";
$result = mysql_query($sql);

if($row = mysql_fetch_array($result)) {
$deposit = $row["deposit"];


echo "
<table>
    <tr><td>transaction</td><td> : </td><td>$transaction</td></tr>

</table>
";
}
?>

【问题讨论】:

  • 您可以将用户ID存储在会话中,然后从该用户ID中您可以轻松地从数据库中获取登录用户的数据。

标签: php mysql database session


【解决方案1】:

连接.php

<?php
$mysql_host = "localhost";
$mysql_user = "root";
$mysql_pass = "";
$mysl_database = "database_name";

$conn = mysql_connect($mysql_host, $mysql_user, $mysql_pass);
mysql_select_db($mysl_database, $conn);
?>

登录.php

<?php
include("connection.php");

if(isset($_POST["submit"])) {
    $username = $_POST["username"];
    $pass = $_POST["pass"];

    $sql = "SELECT * FROM tbl_user
            WHERE username='$username' AND pass='$pass'";
    $result = mysql_query($sql);
    $numRows = mysql_num_rows($result);
    if($numRows==1) {
        session_start();
        $_SESSION["userid"] = $userid;
        header("Location: ./profile_page.php");
    } else {
        echo "Invalid Login Information";   
    }
}
?>

<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">
<table>
<tr><td>User Name</td><td><input type="text" name="username" /></td></tr>
<tr><td>Password</td><td><input type="password" name="pass" /></td></tr>
<tr><td></td><td><input type="submit" name="submit" value="Login" /></td></tr>
</table>
</form>

profile_page.php

<?php
session_start(); // start the session
include("connection.php");

$user_id = $_SESSION["userid"]; // store the user id into session

$sql = "SELECT * FROM tbl_user WHERE user_id='$user_id'";
$result = mysql_query($sql);

if($row = mysql_fetch_array($result)) {
    $username = $row["username"];
    $name = $row["name"];
    $email = $row["email"];

    echo "
    <table>
        <tr><td>User Name</td><td> : </td><td>$username</td></tr>
        <tr><td>Name</td><td> : </td><td>$name</td></tr>
        <tr><td>Email</td><td> : </td><td>$email</td></tr>
    </table>
    ";
}
?>

【讨论】:

  • 谢谢或您的回应,但 做??
  • 脚本名是文件的绝对路径。
  • 我明白了,我尝试在我的数据库中使用您的代码,它转到 profile_page.php,但它没有任何结果,只是一个空白页。我需要在数据库中的表上设置什么吗?
  • 您必须在connection.php文件中设置数据库名称和其他信息。在profile_page.php中,你要设置你的表名,并根据table_name设置字段名。
  • 是的,我已经这样做了,但是我需要在列 ID 中设置主键吗?
【解决方案2】:

您可以在用户成功登录后通过会话的帮助来保护和访问用户数据。

您可以使用session_start() 开始新会话或恢复现有会话。

<?php
session_start();
if(empty($_SESSION['user_sesion_variable']))
  {
    header("location:login.php");
   die();
}
// here go your user database value

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    • 2021-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    相关资源
    最近更新 更多