我想从两个表中获取数据。我在一张表中记录了患者姓名和ID,在另一张表中记录了预约时间。
Table1:
Name Id
Joe Wang 1234
Jack Steward 5555
Table2:
Id Month Date
1234 Jan 15
1234 Jan 18
1234 Feb 5
1234 Mar 1
1234 Mar 3
5555 Jan 3
5555 Apr 4
5555 Apr 12
…
I get data:
$stmt = $mysqli->prepare("SELECT Name,
Table1.Id,
Month,
Date
FROM Table1 JOIN Table2
WHERE Table1.Id=Table2.Id");
如何得到如下输出:
Joe Wang
1234
Jan
15
18
Feb
5
Mar
1
3
Jack Steward
5555
Jan
3
…
我使用以下php代码,它将至少一个名称,ID,月多次,
$stmt->execute();
$result = $stmt->get_result();
while($row = $result->fetch_assoc()){
printf("'t<p>Name: %s Id: %s %s %s</p>'n",
htmlspecialchars( $row["Name"] ),
htmlspecialchars( $row["Id"] ),
htmlspecialchars( $row["Month"] ),
htmlspecialchars( $row["Date"] )
);
}
提前感谢!
与分组有关的第一列是Id
。对它执行master数组,对于每个不同的id,设置一次名称。第二个分组列是Month
,因此必须在id循环中为每个列创建一个数组,并为每个日期创建一个条目。
为了帮助你完成这项任务,我建议:
- 在查询中添加
ORDER BY Id, Month
子句, - 对数组进行
var_dump
处理,将其结构与期望的结果进行比较。