我有这个SQL查询:
foo
这样输出一个表:
<?PHP
$Select = SQLSRV_QUERY($conn,"select Unit, WorkDate FROM TABLE GROUP BY WorkDate, Unit");
ECHO "<table border='1'width='600'>";
ECHO "<tr>";
ECHO "<TD><CENTER>";
ECHO "Unit";
ECHO "</TD></CENTER>";
ECHO "<TD><CENTER>";
ECHO "WorkDate";
ECHO "</TD></CENTER>";
ECHO "</tr>";
WHILE ($Fetch=SQLSRV_FETCH_ARRAY($Select, SQLSRV_FETCH_ASSOC))
{
ECHO "<tr>";
ECHO "<TD><CENTER>";
ECHO $Fetch['Unit'];
ECHO "</TD></CENTER>";
ECHO "<TD><CENTER>";
ECHO date_format($Fetch['WorkDate'], 'm/d/Y');
ECHO "</TD></CENTER>";
ECHO "</tr>";
}//end WHILE
ECHO "</table>";
?>
我希望根据WorkDate将数组输出到单独的表中,所以它看起来像这样:
<table border='1'width='600'>
<tr>
<TD><CENTER>
Unit
</TD></CENTER>
<TD><CENTER>
WorkDate
</TD></CENTER>
</tr>
<tr>
<TD><CENTER>
Unit1
</TD></CENTER>
<TD><CENTER>
06/01/2016
</TD></CENTER>
</tr>
<tr>
<TD><CENTER>
Unit2
</TD></CENTER>
<TD><CENTER>
06/02/2016
</TD></CENTER>
</tr>
<tr>
<TD><CENTER>
Unit3
</TD></CENTER>
<TD><CENTER>
06/03/2016
</TD></CENTER>
</tr>
<tr>
<TD><CENTER>
Unit4
</TD></CENTER>
<TD><CENTER>
06/03/2016
</TD></CENTER>
</tr>
</table>
我知道我需要进行分组,但我不知道如何将其放入while语句中
答案 0 :(得分:1)
试试这个:
if ($Fetch['WorkDate']!=$lastdate){
ECHO "</tr>";
ECHO "</table>";
ECHO "<BR/>";
ECHO "<table border='1'width='600'>";
ECHO "<tr>";
}
$lastdate = $Fetch['WorkDate'];
答案 1 :(得分:0)
谢谢,Tom / AstroCB! 以下是我用于此答案的最终代码:
<?PHP
//get the records
$Select = SQLSRV_QUERY($conn,"select Unit, WorkDate FROM TABLE GROUP BY Unit, WorkDate");
//Start the table outside of while statement
ECHO "<CENTER>";
ECHO "<TABLE border='1'>";
ECHO "<TR>";
ECHO "<TD><CENTER>";
WHILE ($Fetch=SQLSRV_FETCH_ARRAY($Select, SQLSRV_FETCH_ASSOC)){
//Set up the entry date for comparison to $LastDate
$EntryDate = date_format($Fetch['WorkDate'], 'm/d/Y');
//If statement decides if a new table is displayed based on if the current displayed date matches the last date in $LastDate
IF($EntryDate!=$LastDate){
ECHO "</TABLE>";
ECHO "</CENTER>";
ECHO "<BR>";
ECHO "<CENTER>";
ECHO "<TABLE border='1'>";
ECHO "<TR>";
ECHO "<TD><CENTER>";
ECHO "Unit";
ECHO "<BR>";
ECHO "</TD></CENTER>";
ECHO "<TD><CENTER>";
ECHO "Work Date";
ECHO "<BR>";
ECHO "</TD></CENTER>";
ECHO "</TR>";
ECHO "<TR>";
ECHO "<TD><CENTER>";
ECHO $Fetch['Unit'];
ECHO "<BR>";
ECHO "</TD></CENTER>";
ECHO "<TD><CENTER>";
ECHO $EntryDate;
ECHO "<BR>";
ECHO "</TD></CENTER>";
ECHO "</TR>";
}ELSE{
ECHO "<TR>";
ECHO "<TD><CENTER>";
ECHO $Fetch['Unit'];
ECHO "<BR>";
ECHO "</TD></CENTER>";
ECHO "<TD><CENTER>";
ECHO $EntryDate;
ECHO "<BR>";
ECHO "</TD></CENTER>";
ECHO "</TR>";
}//ends if/else
//this variable, outside the if/else will keep track of the last entry date for comparison in the if/else
$LastDate = $EntryDate;
}//end WHILE
//You also need to close off the table, outside the while statement
ECHO "</TABLE>";
ECHO "</TD></CENTER>";
ECHO "</TR>";
ECHO "</TABLE>";
ECHO "</CENTER>";
?>