我有一个MySQL数据库,其中有一个名为NAMES的表,如下所示:
======== ========== ===========
date name1 name2
======== ========== ===========
01/01/15 nameA nameB
01/01/15 nameC nameD
02/01/15 nameE nameF
03/01/15 nameG nameH
03/01/15 nameI nameJ
03/01/15 nameK nameL
04/01/15 nameM nameN
我想将这些值输出到如下表中:
==============================================
01/01/15
==============================================
nameA nameB
nameC nameD
==============================================
02/01/15
==============================================
nameE nameF
==============================================
03/01/15
==============================================
nameG nameH
nameI nameJ
nameK nameL
==============================================
04/01/15
==============================================
nameM nameN
我在寻找一个FOREACH循环吗?
这是我目前正在使用的代码。。。
<?php
$result = mysql_query("SELECT * FROM names ORDER BY date ASC") or die("SELECT Error: ".mysql_error());
echo '<table>';
while ($row = mysql_fetch_assoc($result))
{
echo '<tr><td>'.$row['name1'].'</td><td>'.$row['name2'].'</td></tr>;
}
echo '</table>';
?>
我在另一篇文章中找到了问题的答案,下面是任何有类似查询的人的代码:
<?php
$result = mysql_query("SELECT * FROM names ORDER BY date ASC") or die("SELECT Error: ".mysql_error());
$date = "";
echo '<table>';
while ($row = mysql_fetch_assoc($result))
{
if ($date !== $row["date"]) {
$date = $row["date"];
echo "<tr><td>$date</td></tr>";
{
echo '<tr><td>'.$row['name1'].'</td><td>'.$row['name2'].'</td></tr>;
}
echo '</table>';
?>
每个循环中的测试日期。如果它是空的,或者自上一个循环以来发生了更改,那么请为行加标题。
<?php
$result = mysql_query("SELECT * FROM names ORDER BY date ASC") or die("SELECT Error: ".mysql_error());
$date=null;
echo '<table>';
while ($row = mysql_fetch_assoc($result)) {
If($date !==$row['date']){
$date=$row['date'];
//and echo your header html
}
echo '<tr><td>'.$row['name1'].'</td><td>'.$row['name2'].'</td></tr>;
}
echo '</table>'; ?>