我在一个数据库中创建了两个表名,即'orders'和'registration'。当我正在注册时工作正常,当我尝试使用当前注册登录时工作正常。但是
问题仅在于假设5个用户在那里注册并且他们提交了不同的订单。在登录后,在查看订单历史记录时,所有用户都看到相同的历史记录,所有用户都可以在登录后查看其帐户中的其他订单。我只想阻止这一点。这样只有登录的用户才能看到自己的提交。他们应该能够看到其他用户订单
答案 0 :(得分:2)
由于数据库架构不可用,我假设这样的结构。 在需要的地方更改它。
注册表
Id | firstName | lastName | email | ....
其中,Id
是Primary Key
和auto-incremented
订单表
orderId | userID | orderName | ...
其中,orderId
是Primary Key
和auto-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 ...