0

MySQL テーブルを使用して、表示部分が 7 日間のみの複雑な動的予測カレンダーを作成するのに苦労しています。

テーブル構造は次のとおりです。

表: tidal_prediction

+----+---------+---------+----------+---------+--- ------+-----------+------------+
| | ID | port_id | da_year | da_month | da_date | da_time | da_height | ムーンフェイズ |
+----+---------+---------+----------+---------+--- ------+-----------+------------+
| | 1 | 1 | 2013年 | 1月 | 04 | 16:57 | 3.75 | 0 |
| | 2 | 1 | 2013年 | 1月 | 04 | 10:57 | 2.36 | 新しい |
| | 3 | 1 | 2013年 | 1月 | 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 に答える