0

好的,我确信有办法做到这一点,但我正遭受睡眠不足的困扰,真的需要一些帮助。

这就是我需要的。我有一个表格,下面列出了标题和数据行 - 它看起来很棒但是,当月份更改以分隔月份时,我需要在数据行之间添加一个表格行。

这是我所拥有的:

Date         Time          Event           
08-31-2013   6:00 pm EST   Horseshoe Tourney
09-07-2013   8:00 pm EST   Movie Night
09-28-2013   5:00 pm EST   Dinner on the Quad
10-12-2013   4:30 pm EST   Sing-a-long
10-31-2013   7:00 pm EST   Halloween Party
11-14-2013   4:00 pm EST   Hay Ride

这是我需要的:

Date         Time          Event 
AUGUST (to span the whole table row)          
08-31-2013   6:00 pm EST   Horseshoe Tourney
SEPTEMBER (to span the whole table row)  
09-07-2013   8:00 pm EST   Movie Night
09-28-2013   5:00 pm EST   Dinner on the Quad
OCTOBER (to span the whole table row)  
10-12-2013   4:30 pm EST   Sing-a-long
10-31-2013   7:00 pm EST   Halloween Party
NOVEMBER (to span the whole table row)  
11-14-2013   4:00 pm EST   Hay Ride

任何帮助将不胜感激。下面是我现在用来创建表的代码。

<table style="width: 100%;">
<thead>
    <tr style="background-color:#8a0028; color:white;">
        <th style="background-color:#8a0028; color:white; text-align:left;">Date</th>
        <th style="background-color:#8a0028; color:white; text-align:left;">Time</th>
        <th style="background-color:#8a0028; color:white; text-align:left;">Event</th>
    </tr>
</thead>
  <tbody>
    <?php
  // Write rows
    mysql_data_seek($result, 0);
    while ($row = mysql_fetch_assoc($result)) {
    ?>
    <tr>
    <td><?php echo date("M d, Y", strtotime($row['date']));?></td>
    <td><?php echo $row['time'];?></td>
    <td><?php echo $row['event'];?></td>
    </tr>
<?php } ?>
  </tbody>
</table>
<?php
mysql_free_result($result);
?>

这就是最终为我工作的东西!当然感谢您的帮助!

<?php
  // Write rows
    mysql_data_seek($result, 0);
    $month='';
    while ($row = mysql_fetch_assoc($result)) {
        if(date("F", strtotime($row['date']))!==$month){
            $month=date("F", strtotime($row['date'])); ?>
            <tr><td colspan="3"><?= $month ?></td></tr>
            <?php
        }
    ?>
    <tr>
    <td><?php echo date("M d, Y", strtotime($row['date']));?></td>
    <td><?php echo $row['time'];?></td>
    <td><?php echo $row['event'];?></td>
    </tr>
<?php 
    $month=date("F", strtotime($row['date']));
    } 
?>
  </tbody>
</table>
<?php
mysql_free_result($result);
?>
4

2 回答 2

1

尝试这个:

<table style="width: 100%;">
<thead>
    <tr style="background-color:#8a0028; color:white;">
        <th style="background-color:#8a0028; color:white; text-align:left;">Date</th>
        <th style="background-color:#8a0028; color:white; text-align:left;">Time</th>
        <th style="background-color:#8a0028; color:white; text-align:left;">Event</th>
    </tr>
</thead>
  <tbody>
    <?php
  // Write rows
    mysql_data_seek($result, 0);
    $month='';
    while ($row = mysql_fetch_assoc($result)) {
        if(date("F", strtotime($row['date']))!==$month){
            $month=date("F", strtotime($row['date'])); ?>
            <tr><td colspan="3"><?= $month ?></td></tr>
            <?php
        }
    ?>
    <tr>
    <td><?php echo date("M d, Y", strtotime($row['date']));?></td>
    <td><?php echo $row['time'];?></td>
    <td><?php echo $row['event'];?></td>
    </tr>
<?php } ?>
  </tbody>
</table>
<?php
mysql_free_result($result);
?>
于 2013-10-01T01:09:39.770 回答
0

我建议这样的事情:

本质上,在每个循环开始时,您都在测试该月份是否与上一个不同。如果是,则输出一个新行。

<?php
        mysql_data_seek($result, 0);
        $last_month = '';
        while ($row = mysql_fetch_assoc($result)) { 
 ?>

<?php if (date("M", strtotime($row['month'])) != $last_month): ?>
    <tr>
        <td colspan="4"><?php echo date("M", strtotime($row['month'])); ?></td>
    </tr>
<?php endif; ?>

        <tr>
        <td><?php echo date("M d, Y", strtotime($row['date']));?></td>
        <td><?php echo $row['time'];?></td>
        <td><?php echo $row['event'];?></td>
        </tr>

<?php 
        $last_month = date("M", strtotime($row['month']));
    } 
?>
于 2013-10-01T01:04:19.293 回答