如何从不同用户的mysql中检索记录


How to retrieve records from mysql from different users

我正在使用php和mysql数据库制作一个预订系统。该系统有多个用户可以登录并进行预订,所以我想知道一种根据用户会话选择记录的方法。目前,它只选择所有预订记录,这意味着用户可以访问所有预订。

我有一个有预订记录的预订表和一个有用户凭据的用户表。是否还有从两个表中选择记录的方法

在用户表上,您应该有一个唯一的id。

在预订表上,您有一个字段用户id。当您添加预订时,您将用户id保存到该字段中。

然后,当您想要检索预订时,您可以选择与特定用户id匹配的记录。

在预订表上有一个用户id字段称为外键。它是使用sql进行许多操作的基础。通过这种方式设置,可以进行所谓的联接。这是从两个或多个表中获取所有数据的地方,行根据它们的键值进行组合。所以在你的情况下,你可以这样做:

SELECT * FROM users,bookings WHERE bookings.id=users.id;

这将向您返回包含所有预订数据的记录,以及进行预订的用户的所有用户数据。你也可以做:

SELECT * FROM bookings where users.id=3;

这将为您提供id为3的用户的所有预订数据。

您也可以在其他字段上进行匹配,但保留该外键作为联接,以确保您始终获得预订和用户之间的正确链接,例如

SELECT * FROM users,bookings WHERE users.surname="Doe" AND bookings.id=users.id;

你也可以反过来使用它——例如,如果你想获得在给定日期预订的每个人的用户详细信息,你可以这样做:

SELECT * FROM users WHERE bookings.date='03/03/2015' AND users.id=bookings.id;

正如您所看到的,将该用户id添加到预订表中打开了很多可能性,因为它将您的数据链接在一起,允许您将数据作为单个记录获取,即使它被拆分到多个表中。

您需要为数据库中的每个用户创建一个唯一的ID。使用Primary Key并将其设置为"自动增量"。

在登录时检查有效凭据后,从数据库中获取其ID并将其存储在会话变量中。

使用用户ID列创建预订表。为预订分配用户ID。当您想查询他们的预订时,请在查询中包括他们的用户ID。