Php SQL查询中每个日期的HTML表

Php SQL查询中每个日期的HTML表,php,mysql,sql,html-table,Php,Mysql,Sql,Html Table,我需要将SQL查询的结果输出为每个日期的表。 每个日期都有几行,带有uniqe id、系统名称和备注 mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$dbname") or die("cannot select DB"); $query = " SELECT id, Date, System, Remark FROM records WH

我需要将SQL查询的结果输出为每个日期的表。 每个日期都有几行,带有uniqe id、系统名称和备注

mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$dbname") or die("cannot select DB");


    $query = " 
    SELECT id, Date, System, Remark FROM records WHERE Date BETWEEN '$from' AND '$to'
    ORDER BY Date, CASE System 
        WHEN 'System1' THEN 1
        WHEN 'System2' THEN 2
        WHEN 'System4' THEN 3
        WHEN 'System5' THEN 4
        ELSE 19
        END
    ";

$result = mysql_query($query);
如何在此基础上生成包含所有日期相同的行的表:

<table>
<tr><th colspan="3"> Display date here</th></tr>
<tr>
    <td>Display System here</td>
    <td>Display Remark here</td>
    <td>Display id here</td>
</tr>
    <tr>
    <td>Display System here</td>
    <td>Display Remark here</td>
    <td>Display id here</td>
</tr>
    <tr>
    <td>Display System here</td>
    <td>Display Remark here</td>
    <td>Display id here</td>
</tr>
</table>

在这里显示日期
显示系统在这里
在此显示备注
在这里显示id
显示系统在这里
在此显示备注
在这里显示id
显示系统在这里
在此显示备注
在这里显示id

使用while循环遍历结果

<table>
<?php while($row = mysql_fetch_array($result)) {?>
   <tr><th colspan="3"> <?php echo $row["date"];?></th></tr>
   <tr>
      <td><?php echo $row["system"];?></td>
      <td><?php echo $row["remark"];?></td>
      <td><?php echo $row["id"];?></td>
   </tr>
<?php } ?>
</table>

使用while循环遍历结果

<table>
<?php while($row = mysql_fetch_array($result)) {?>
   <tr><th colspan="3"> <?php echo $row["date"];?></th></tr>
   <tr>
      <td><?php echo $row["system"];?></td>
      <td><?php echo $row["remark"];?></td>
      <td><?php echo $row["id"];?></td>
   </tr>
<?php } ?>
</table>

试试这个

<php
$previous_date="";

echo "<table>";
while ($row=mysql_fetch_array($result))
{
$new_date=$row["date"];
if ($previous_date!=$new_date && $previous_date!="")
echo "</table><table>";

if ($previous_date!=$new_date)
echo "<tr><th colspan='3'>".$row["date"]."</th></tr>";

echo "<tr>";
echo "<td>".$row["system"]."</td>";
echo "<td>".$row["remark"]."</td>";
echo "<td>".$row["id"]."</td>";
echo "</tr>";

$previous_date=$new_date;
}
echo "</table>";
?>

编辑

补充说明:

对于每个循环,我检查这是否是一个新日期。如果是,则关闭上一个表,创建一个新表并回显表头

我必须处理第一个要打开的表的情况(这是$previous_date为空时的情况)。然后我只插入标题

第一个表在while循环之前打开,最后一个表在while循环之后关闭。

试试这个

<php
$previous_date="";

echo "<table>";
while ($row=mysql_fetch_array($result))
{
$new_date=$row["date"];
if ($previous_date!=$new_date && $previous_date!="")
echo "</table><table>";

if ($previous_date!=$new_date)
echo "<tr><th colspan='3'>".$row["date"]."</th></tr>";

echo "<tr>";
echo "<td>".$row["system"]."</td>";
echo "<td>".$row["remark"]."</td>";
echo "<td>".$row["id"]."</td>";
echo "</tr>";

$previous_date=$new_date;
}
echo "</table>";
?>

编辑

补充说明:

对于每个循环,我检查这是否是一个新日期。如果是,则关闭上一个表,创建一个新表并回显表头

我必须处理第一个要打开的表的情况(这是$previous_date为空时的情况)。然后我只插入标题


第一个表在while循环之前打开,最后一个表在while循环之后关闭。

到目前为止您尝试过什么吗?使用While循环获取结果行,然后使用内部变量回显表(每个循环一个)。。。在这方面你需要任何具体的帮助吗?你能发布你从这个查询中得到的结果数组吗?到目前为止你尝试过什么吗?使用While循环获取结果行,然后使用内部变量回显表(每个循环一个)。。。您需要任何具体的帮助吗?能否发布从该查询中获得的结果数组?这为数据库中的每一行提供了一个表,但是我需要一个表来输出包含相同日期的所有行。将标记保留在循环之外。仔细看。循环遍历结果,为每个结果创建新行…但是标记在循环之外…1个表…很多行,应该指定每个日期只显示一次日期行。这为数据库中的每行提供了一个表,但是,我希望有一个表输出包含相同日期的所有行。将标记保留在循环之外。仔细看。您在结果中循环,为每个结果创建新行…但是标记在循环之外…1表…很多行,应该指定每个日期只显示一次日期行。