0

我无法使用 MySQL 表制作一个只有 7 天可见部分的复杂动态预测日历。

表结构为:

表:tidal_prediction

+----+---------+---------+----------+---------+--- ------+------------+------------+
| 编号 | 端口号 | 大年 | 大月 | 日期 | 大时间 | 大高度 | 月相 |
+----+---------+---------+----------+---------+--- ------+------------+------------+
| 1 | 1 | 2013 | 一月 | 04 | 16:57 | 3.75 | 0 |
| 2 | 1 | 2013 | 一月 | 04 | 10:57 | 2.36 | 新 |
| 3 | 1 | 2013 | 一月 | 04 | 08:57 | 3.35 | 完整 |
| ...... |
+----+---------+---------+----------+---------+--- ------+------------+------------+

你知道这是一个带有虚拟数据的表格:)


7 天预测日历的外观

我为 7 天预测的日历制作了表格和 CSS,例如:
7天预报日历

日历的基本 HTML 结构是:

<h4 class="tidal-year">2012</h4>
<h5 class="tidal-month">December</h5>
<table>
   <thead>
      <tr><th></th></tr>
   </thead>
   <tbody>
      <tr><td></td></tr>
   </tbody>
</table>

现在,
我正在努力使用 PHP 循环将 MySQL 数据动态地回显到表中。

设想

场景是:代码将获取“今天”并回显预测,还将使用表格数据显示未来 6 天的预测。每次循环结束到月底,代码也会结束表格。一个新的<h5 class="tidal-month"><?php echo $next_month_name; ?></h5>将产生一个新的<table>追随者。当结束月份表示年末时,则:

<h4 class="tidal-year"><?php echo $next_year; ?></h4>
    <h5 class="tidal-month"><?php echo $next_month_name; ?></h5>
    <table>
    ...

将制作新年餐桌。

SQL查询

SELECT da_year,da_month,da_date,da_time,da_height,moon_phase
FROM tidal_prediction
WHERE port_id='1'
GROUP BY port_id,da_year,da_month,da_date
ORDER BY da_year,da_month,da_date,da_time ASC

我也对查询感到困惑。我需要一个多维数组吗?我怎样才能从这张桌子上做一个?我的分组正确吗?

显然,我怎样才能在一个循环中制作复杂的 PHP 循环?

这个问题可能看起来像一个完全依赖项,但我真的在努力搜索所有方面和可能的代码(如 PHP 年历、多维数组等)——最后我完成了。:(

4

1 回答 1

1

我认为您不需要多维数组。为什么不逐行获取结果,维护一个变量 $last_day["year"], ["month"], ["day"] 以便您可以将当前记录与以前的记录进行比较,看看日、月或年是否发生了变化和然后为这种情况输出适当的html...

哦,顺便说一句,我会在 SQL 中添加一个 WHERE 子句,以将结果限制为您感兴趣的 7 天——比之后在 PHP 中过滤更有效......

于 2013-07-18T06:49:44.713 回答