
PHPでMySQLを利用した予約カレンダーを作成しなければならない課題なのですが、初心者同然の知識ではなかなか難しく、また、思うようなサンプルも見つからず、困っています…。
希望としては、カレンダー表示(うるう年計算や祝日情報を含む)で、データベースに予定が入っていなければ日付にリンク付けをし、枠内に○印を記載、そりてリンクからは予約項目入力ページに移動させるようにしたいと思っています。また、データベースに予定が入っていれば日付のリンク付けはなしで枠内に×印を表示して予約が出来ないようにしたいと考えています。
下記が予約状況を入れたMySQLテーブルです。
mysql> desc reserve;
+--------------+-----------+----+---+-----------------+---------------------------+
|Field |Type |Null|Key|Default |Extra |
+--------------+-----------+----+---+-----------------+---------------------------+
|会員ID |varchar(10)|NO |MUL|NULL | |
|部屋NO |int(3) |NO |MUL|NULL | |
|人数:大人 |int(3) |NO | |NULL | |
|人数:子ども |int(3) |NO | |NULL | |
|チェックイン |date |NO | |NULL | |
|チェックアウト|date |NO | |NULL | |
|宿泊プランNO |int(10) |NO |MUL|NULL | |
|予約登録日 |timestamp |NO | |CURRENT_TIMESTAMP|on update CURRENT_TIMESTAMP|
+--------------+-----------+----+---+-----------------+---------------------------+
出来ればサンプルコード、もしくは希望のサンプルが乗ったURLなどをお教え頂きたく思います。
また、予約画面ではチェックアウト日選択(チェックイン日から1週間以内)や、人数を入力していただくテキストフィールドと宿泊プランの選択プルダウンをつけるつもりでいます。
すみませんがどなたかこの初心者に救いのお手をお貸しくださいませ。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
ざっくり書くとこんな感じでカレンダーを表示する
<form>
<p>
<select name="ym">
<option value="201301">2013年 1月</option>
<option value="201302">2013年 2月</option>
<option value="201303">2013年 3月</option>
<option value="201304">2013年 4月</option>
<option value="201305">2013年 5月</option>
<option value="201306">2013年 6月</option>
</select>
<input type="submit" value="go">
</p>
</form>
<?PHP
$ym=isset($_REQUEST["ym"])?$_REQUEST["ym"]:false;
$pattern="/^([0-9]{4})([0-9]{2})$/";
if(preg_match($pattern,$ym,$matches)){
$y=(int) $matches[1];
$m=(int) $matches[2];
$d=mktime(0,0,0,$m,1,$y);
$w=date("w",$d);
$d -=$w*86400;
$table="<table border>\n";
$table.="<caption>{$y}年{$m}月</caption>\n";
$table.="<tr><th>日</th><th>月</th><th>火</th><th>水</th><th>木</th><th>金</th><th>土</th></tr>\n";
while(mktime(0,0,0,$m+1,1,$y) >=$d){
$table.="<tr>";
for($i=0;$i<7;$i++){
$table.="<td>";
if($m != (int) date("m",$d)) $table.="";
else $table.=date("j",$d);
$d+=86400;
$table.="</td>\n";
}
$table.="</tr>\n";
}
print $table;
}
?>
あとは$yと$mをもとに、データベースからひと月分予定を抜いてきて、表示を調整する。
たとえば、こんな感じ・・・
$sql="SELECT 日付,予定 FROM 予定表 WHERE 日付 BETWEEN @d:='{$y}-{$m}-1' AND @d + interval 1 month - interval 1 day";
No.1
- 回答日時:
課題なのにサンプルコード提示したらそのまま使っちゃうだろ。
ここまで詳細な仕様が決まっているならサンプルは無いよ。
まずはどこがわからないの?
サンプル出す出さないにしたって漠然としすぎ。
仮にサンプル出すにしてもここで回答しきれる内容じゃないよ。
・表示の仕方がわからない
・カレンダーの作り方がわからない
・登録の仕方がわからない
・そもそもmySQLとの接続が出来ない
・そもそも課題の意味がわからない
ひとつひとつクリアするしかないぜ?
>初心者同然の知識ではなかなか難しく
だから課題を出すんだよ。学校とかの勉強なんだろ?
この回答への補足
ご回答ありがとうございます。
分からないのは、
・表示の仕方がわからない
・カレンダーの作り方がわからない
です。
カレンダーのサンプルならば見つけたのですが、そこにMySQLのデータを組み合わせ方が全く分からず、全然捗っていないのです…。
一応希望としては
http://showcase.souppot.jp/top.php
このような形のカレンダーが理想です…。
なので、結果としてはカレンダー表示にデータベースの予定を反映したいけれど、どんなコーディングをすればいいのかさっぱりわからない、といった具合です。
分かり辛く、お手数をおかけしましてすみませんでsた
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpのheader("Location:#pos")...
-
PHP8でWarning:Undefined varia...
-
フォームで戻った際に入力済み...
-
csvファイルについて教えて下さ...
-
セッション関数を使わずにファ...
-
composerをインストールしたい...
-
SplFileObject を利用したとき...
-
PHPSpreadsheetによる書き出し...
-
phpの問い合わせフォームを作っ...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
-
PHPからCSVをアップロード後、m...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
セレクトしたときに全て初期状...
-
PHP で画面の一部だけを変えたい。
-
input type="hidden"で送る値を...
-
PHPにてselectboxの色によっ...
-
mysqlからのコンボボックスにつ...
-
「"」(ダブルクォーテーション)...
-
ウェブ上で選択した複数行の内...
-
PHP プルダウンメニュー MYSQL
-
【PHP&JavaScript】複数の別ウ...
-
HTML_QuickFormのチェックボッ...
-
複数のセレクトボックスを1つに...
-
CodeIgniter/set_value()
-
選択したタグ、入力した検索文...
-
データベースにある値でリスト...
-
プログラミング言語で、使える...
-
Smarty 配列のキーを変数で
-
コンボボックス(プルダウン)...
-
phpの質問です
-
わかりません・・・
-
MySQLのレコードを検索、...
おすすめ情報