3

指導者が必要です。月曜日から始まる「現在の週」を 7 部屋のグリッドで 7 日間のカレンダーに表示するにはどうすればよいですか。私がボランティアで参加している小さな劇場では、さまざまなボランティアの町のグループが部屋を使用しています。
データベース名=rooms、テーブル=roomdiary、7 つのフィールド (field_1 から Field_7) があります。

必要に応じて、「選択」クエリとphp issetコードを使用して、dbaseからのデータを毎日入力できます。しかし、適切な日に適切な部屋に「今週」のデータのみを正しく表示する方法に困惑しています。>

////// 月…火 . 水 .. 木 .. 金 . 土..日
ルーム1のデータ。データ 。データ 。データ 。データ データ . データ
ルーム2データ。データ 。データ 。データ 。データ データ . データ
ルーム3データ。データ 。データ 。データ 。データ データ . データ
ルーム4データ。データ 。データ 。データ 。データ データ . データ
ルーム5データ。データ 。データ 。データ 。データ データ . データ
ルーム6データ。データ 。データ 。データ 。データ データ . データ
ルーム7データ。データ 。データ 。データ 。データ データ . データ    

一般的なアドバイスは役に立ち、学ぶのに役立つと思ったので、コードを投稿しなかったことをお詫びします。任意のガイダンスをいただければ幸いです。

4

2 に答える 2

2

この問題を 2 つに分割することをお勧めします

  1. 表示期間の開始日を計算する (="現在の月曜日は何日ですか")
  2. レコードを選択して表示する

date()最初のポイントは、PHPまたは関数を使用すると非常に簡単ですgetdate()。2 番目のポイントは、SELECT ... WHERE datecolumn BETWEEN monday_date AND sunday_date.

これは、プログラムのモジュール化に役立ちます。将来、表示オプションを追加したい場合はどうすればよいでしょうか? あなたの劇場が月曜日に上演しないことを決定した場合はどうなりますか?

さらに、7 つの部屋を 7 つのフィールドにハーコーディングしないことをお勧めします。リレーショナル アプローチでは、"rooms" テーブル (現在は 7 行) と、部屋と日付をリンクする "performances" テーブルを使用します。「番組」表を追加して「公演」表とリンクすれば、すでに番組データは無料で入手できます。

于 2012-11-27T13:44:39.033 に答える
1
  1. データベースを再設計し、テーブル ルーム (room_id, room_name) とテーブル スケジュール (room_id, date, data, week_nr, year) を作成します。

  2. 常に日付とともにweek_nrをデータベースに書き込む - date('W', timestamp)

  3. データベースに week_nr を保存したくない場合は、 strtotime('Last monday', timestamp) および strtotime('Next Sunday', timestamp) を試して、データベースの日付から範囲を選択してください

于 2012-11-27T13:33:44.037 に答える