php - 连接两个不同的表并编辑php
问题描述
我无法解决这个问题。在数据库中有 2 个不同的表,1 个 TABLES 称为 USERS,第二个是 TICKETS。当用户注册时,该信息存储在 USERS 表中,只有注册用户才喜欢打开票证以获得支持。当用户打开工单时,该信息将存储到 TICKETS 表中。现在的问题是,当一些随机用户想要查看工单状态时,他们会显示存储在 TICKET 表中的所有工单,这是我们不想要的,我们只想显示登录用户的工单状态。代码示例如下:
在ticket-status.php 页面上预览数据的代码是:
<?php
include('connection.php');
$result = $db->prepare("SELECT * FROM tickets JOIN users WHERE users.email=tickets.email");
$result->execute();
for($i=0; $row = $result->fetch(); $i++){
?>
<tr>
<th scope="row"><?php echo $row['ticket_id'] ?></th>
<td><?php echo $row['item_selected'] ?></td>
<td><?php echo $row['help_selected'] ?></td>
<td><?php echo $row['message'] ?></td>
<td><?php echo $row['status'] ?></td>
</tr>
<?php
}
?>
这是用户数据库的外观:
ID - FIRST NAME - LAST NAME - EMAIL - PASSWORD - PHONE - CREATED - MODIFIED
1 Greg McFe u@g.com 123 123 date date
2 Roy McDs a@g.com 133 222 date date
3 Tina MCda g@g.com 333 111 date date
门票数据库是:
TICKET_ID - ITEM_SELECTED - HELP_SELECTED - EMAIL - PHONE - MESSAGE - STATUS
1 theme2 problem u@g.com 123 msg1 open
2 theme12 errors a@g.com 222 msg12 open
3 theme8 solution g@g.com 333 msg9 closed
我需要的。在ticket-status.php 页面上,当随机用户登录并查看他的工单状态时,显示他的打开工单。例子:
TICKET ID - ITEM SELECTED - HELP SELECTED - MESSAGE - STATUS
2 theme12 errors msg12 open
解决方案
您需要通过将结果添加到您的WHERE
子句来将结果限制为仅登录用户。
我从您的代码中看不到您知道登录用户的 EMAIL 是什么,但我认为您必须以某种方式知道这一点
SELECT *
FROM tickets
JOIN users ON users.EMAIL = tickets.EMAIL
WHERE user.EMAIL = <the logged in users EMAIL>
ID
将用户的 放入表中会更好Tickets
,而不是users
表格,所有人都会继续工作。就像现在一样,您还需要修改它们Tickets
。
推荐阅读
- javascript - 我的 . 在计算器。我只需要一个点
- r - 提取两个重复字符串之间的文本子字符串
- azure-virtual-machine - 如何连接到安装在 azure 上托管的虚拟机上的 mosquitto 代理?
- java - com.facebook.react.bridge.JavaJSExecutor$ProxyExecutorException
- graphite - 石墨没有显示正确的值
- wix - WiX:比较版本“7.xxx”和“10.xxx”
- mysql - 名称 [jdbc/springmvc] 未绑定在此上下文中
- python - 带有未知空间的 Visual Studio 代码语法错误
- sql - 使用案例表达式选择正确的患者类型
- qt - Qt WebEngine 未在 Ubuntu 14.04 上与 Qt 5.12 链接