如果我在数据库中有两个表,我想从一个表用户ID获取到其他表数据

时间:2015-11-16 13:03:30

标签: php mysql

我在一个数据库中创建了两个表名,即'orders'和'registration'。当我正在注册时工作正常,当我尝试使用当前注册登录时工作正常。但是

问题仅在于假设5个用户在那里注册并且他们提交了不同的订单。在登录后,在查看订单历史记录时,所有用户都看到相同的历史记录,所有用户都可以在登录后查看其帐户中的其他订单。我只想阻止这一点。这样只有登录的用户才能看到自己的提交。他们应该能够看到其他用户订单

3 个答案:

答案 0 :(得分:2)

由于数据库架构不可用,我假设这样的结构。 在需要的地方更改它。

注册

Id | firstName | lastName | email | ....

其中,IdPrimary Keyauto-incremented

订单

orderId | userID | orderName | ...

其中,orderIdPrimary Keyauto-incremented; userID注册表的Id

因此,当您通过注册表登录时。为Id创建一个会话。

$_Session['user_id'];注册表的Id将存储在此处。)

查看他/她的订单

<?
$userID=$_SESSION['user_id'];
$orderQuery="SELECT * FROM orders WHERE userID=$userID";
.
.//Execute Your query
.
?>

答案 1 :(得分:0)

所以在订单表中你需要添加列 用户id与表用户的外键相关,并且仅按id记录/选择用户选择订单。

对于用户登录时的exaple,您需要获取其唯一ID。 当他想看到订单查询该特定用户的onle结果时。 对于前。

 set @loggeduser = session_id() from php. 
 Select * from oreders where userid=@loggeduser;

我无法发表评论。

答案 2 :(得分:0)

像大卫说的那样,你可以使用类似的东西:

Select * from order
where userid = logedinuserid

但您还应该考虑重命名表顺序。 我只是假设您在订单表中有UserID ...