0

我想从两个表中获取数据。我在一张表中有患者姓名和 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

...

我得到数据:

$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"] )
    );
}

提前致谢!

4

1 回答 1

0

对分组很重要的第一列是Id。所以你在它上面做你的主数组,并为每个不同的 id 设置一次名称。第二个分组列是Month,因此您必须在 ids 的循环中为它们中的每一个创建一个数组,并为每个日期创建一个条目。

为了帮助您完成这项任务,我建议:

  • 在查询中添加ORDER BY Id, Month子句,
  • 在构造数组后执行一个var_dump数组以将其结构与所需结果进行比较。
于 2013-04-08T06:59:40.940 回答