- 締切済み
PHPを使って横型のスケジュール管理表を作りたい
PHPとmySQLを利用して、横型のスケジュール管理表を作成したいと思っています。横型というのは、1日~月末までが横にずらっと並んでいて、その下に曜日が入っており、その下には人の名前がそれぞれ入ります。それぞれの人の名前の横には日付に対応した予定が入るようにしたいのです。各人の予定は「何日~何日まで出勤」「何日~何日まで東京」というような大まかなスケジュールだけを管理したいと思っており、それらが日をまたぐ場合、tableのtdタグをまとめて、真ん中にdbから持ってきた予定を書き込みたいと思っています。しかし、ネットを探すも全く同じようなものはなく、自分でも全く案が思い浮かびません。どうかお力をお貸しいただけないでしょうか。難しいコードでもネットを駆使して自分なりに調べようと思いますので、どんなものでも書いていただければ助かります。それともこういったことができない(不可能)という場合、それらも教えていただければと思います。目指したいのは以下のようなページです。 2023年10月 -------------------------------------- 1 2 3 4 5 6 7 8 9 10 11 ~・・・31 -------------------------------------- 日月火水木金土日~・・・・日 -------------------------------------- 鈴木 | 出張(東京)|出勤| 木村 |出張(熊本| 休暇 | ↑ 日を跨いだ予定でも、動的にセルが結合される。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- t_ohta
- ベストアンサー率38% (5238/13705)
> 日付を跨ぐ場合の予定はその日数分セルを結合する方法などもしご存知でしたら、ご教示頂ければと思います。 tableのセルを横に結合するのは <td colspan=[結合するセル数]>Hoge</td> と記述するだけです。 データから日数を取得しあてはめるだけです。 予定が3日間なら <td colspan=3>予定</td> とするだけです。 PHPで記述するなら$nissu変数にデータから取得した日数を入れ <td colspan=<?php echo $nissu; ?>>予定</td> と記述するだけです。
- t_ohta
- ベストアンサー率38% (5238/13705)
横型とか縦型とか関係無く、まずはデータをどの様に保存したらいいか設計してみましょう。 スケジュール(カレンダー)の設計って案外と奥が深く難しいモノです。 iCalendarと言う国際標準のスケジュールデータフォーマットがあるので、参考にしてみるといいんじゃないでしょうか。 細かな仕様は置いといて、予定の日程をどうデータとして表現するかという事は参考になると思います。 スケジュールをデータとしてDBに保存できれば、あとはHTMLで表現するだけなので、そんなに難しい事は無いと思います。
お礼
iCalendarというものがあるのですね。ありがとうございます。確認してみます。 具体的なイメージは質問の通りですが、設計するための知識がなくここで質問させていただきました。。。自分なりにも引き続き勉強していきます。DBから持ってきた情報をもとに、日付を跨ぐ場合の予定はその日数分セルを結合する方法などもしご存知でしたら、ご教示頂ければと思います。よろしくお願いします。
お礼
ありがとうございます。私の質問の仕方が悪かったです。 結合自体は分かるのですが、そこまでのロジックが分かりません。変数を使って日数の差をcolspanの値に当てはめればいいだけなのですが、DBへの入力の仕方やそれから取得した値のtableへの当てはめ方が分かりません。。。DBから持ってきた値を配列に入れて、その後、開始、終了の日程から差分を取って、その分をcolspanの値に入れるとして、それをfor分でどうやって回しながら、動的にtableを作ればいいのか、そもそもDBにどのようなテーブルを用意しておけば差分を取れるのか、が分かりません。初心者で申し訳ないです。