首页 > 解决方案 > PHP / HTML 使用两个表并获取名称以在 html 表中使用

问题描述

我有一个小问题,现在我正在做一个小票系统。

我有一个表格,其中显示了与该用户相关的可用票证。

示例:用户 Nick 有 3 张票,它会像这样显示。

+-----------+------------+---------+
| Ticket ID | Created by | Comment |
+-----------+------------+---------+
|     2     |     4      |  Text   | <- Ticket 1
+-----------+------------+---------+
|     3     |     2      |  Text   | <- Ticket 2
+-----------+------------+---------+
|     5     |     3      |  Text   | <- Ticket 3
+-----------+------------+---------+

现在,我在“创建者”列中只有用户 ID,但我希望显示用户名。

我有两个数据库表,所有用户都保存在表 1 中,票保存在表 2 中,现在我需要一个查询来获取用户 ID 4、2、3 的用户名,以在 HTML 表中显示用户名,但我没有不知道该怎么做。

我当前的查询如下所示:

$pdo->query("BEGIN");
$t = ("SELECT * FROM ticket WHERE uid='$param'");
$pdo->query("COMMIT");

为了解释“uid”,我使用 uid 获得与该玩家相关的门票。

//编辑

这不完全是我正在寻找的东西,也许我解释得有点错误。

这是我的票表: 票表

第一行:票证 ID 第二行:UID 标识为票证创建的用户第三行:创建票证的用户的 ID。

现在我有用户表: 用户表

第一行:标识用户第三行:是用户的用户名

现在我有一个 html 表(这只是表的一小部分): HTML Table

第一行:创建该票证的用户的用户 ID 第二行:票证 ID

现在它显示为 UID 76561198073236987 创建的所有票证,而不是只显示创建票证的用户的 ID,我想显示用户名。

标签: phpmysql

解决方案


使用 SQL 接头。请参阅下面的查询

"SELECT * FROM ticket
LEFT JOIN user ON user.uid= ticket.uid WHERE ticket.uid='$param'";

这将返回用户详细信息以及票证详细信息。
无论用户是否可用,都将收到票务详细信息
有关左加入的更多信息:https ://www.w3schools.com/sql/sql_join_left.asp

如果您只想要包含用户详细信息的票证,您可以使用内部加入或加入。请参阅下面的查询

"SELECT * FROM ticket
    INNER JOIN user ON user.uid= ticket.uid WHERE ticket.uid='$param'";

这将返回用户详细信息以及票证详细信息。
如果用户不可用,将不会收到门票详细信息
有关内部加入的更多信息:https ://www.w3schools.com/sql/sql_join_inner.asp


推荐阅读