【发布时间】:2017-07-29 20:58:35
【问题描述】:
我的数据库中有 4 个名为 customers 的表(保存他们的个人详细信息以及他们在哪个项目中的哪个房间),payments(保存他们的付款详细信息) project)、projects(保存项目详细信息)和staff(保存员工登录详细信息)
我还有 3 个页面,我需要从所有这些页面获取数据(员工除外 - 一旦他们登录,会话等处理这些),但对于客户、付款和项目,我经常需要数据。
表结构如下;
客户
UID - pID - rID - name - surname - roomtype
付款
UID - pID - total - paid
项目
pID - name - hotel
至于结果,我想检查谁 (UID) 在同一个项目 (pID) 中住在同一个房间 (rID),并且我想单独检查他们的付款详细信息,无论他们是在单人房还是双人房。
我可以使用哪些查询来获得如下结果,而不会对服务器造成太大压力,同时尽可能减少查询量?
示例;
+-------------------------------------------------------------------+
| rID UID pID name surname roomtype total paid |
+-------------------------------------------------------------------+
| 1035 1010 301 John Doe double 200 200 |
| 1011 301 Jane Doe double 200 200 |
| 1036 1012 301 Fred Nerk single 150 150 |
+-------------------------------------------------------------------+
编辑:
我已将查询更改为;
$query = "SELECT p1.*,
p2.total, p2.paid, p2.pmethod, p2.currency, p2.auth, p2.invoice,
p3.pname, p3.pstartdate, p3.penddate, p3.photel, p3.pcity, p3.pstatus
FROM customers p1
INNER JOIN payments p2 ON p1.UID=p2.UID
INNER JOIN projects p3 ON p1.pID=p3.pID";
$guests = $mysqli->prepare($query);
$guests->execute();
$guests->store_result();
虽然谈到 $guests->fetch() 我没有得到任何结果。我已经按照@Code-Monk 的建议通过 MYSQL Workbench 检查了查询 - 虽然它选择了行,但它没有选择存储在表中的任何数据,因此不返回任何结果。谁能在这里指出我的错误?
- 结论 - 显然,我在客户表中的“UID”条目与其他条目不同。所以,现在它可以工作了。非常感谢您帮助我解决这个问题,老实说,您为我节省了很多工作和时间。知道你很了不起,我很感激你抽出时间来帮助我。再次感谢你!向你致敬和良好的业力:)
【问题讨论】: