• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:php+mysqlプログラムについて)

PHP+MySQLプログラムで予約を各時間ごとに設定する方法

このQ&Aのポイント
  • PHP+MySQLプログラムを使用して予約を各時間ごとに設定する方法について教えてください。
  • 現在の状況では、予約情報を更新すると1ヶ月分の情報がすべて同じになってしまいます。それを各時間ごとに個別に設定できるようにするためには、どの部分を変更すればよいのでしょうか?
  • 予約スクリプトのコードやデータベースの定義も提供していただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

こういうマルナゲはこたえづらいので、もっと切り分けて 質問してください。 とりあえずはyoyakuテーブルのdateフィールドが date型なのでそれをdatetime型にして時間単位で 管理してはいかがですか? そうすればある部屋の、特定の日時が確定できるので、 それを表示するだけですむでしょう。

it2008
質問者

補足

ご回答ありがとうございます。 教えて頂いたとおり、datetime型にしてみました。 しかしながら、以前の状況と変化はございません。 ほか、該当する部分等ございましたら、 ご教授のほどお願いします。 /* 部屋データ用テーブル作成 */ CREATE TABLE room ( roomid int NOT NULL auto_increment, roomname varchar(50) NOT NULL default '', ryoukin int NOT NULL default '0', PRIMARY KEY (roomid) ); /* 予約データ用テーブル作成 */ CREATE TABLE yoyaku ( roomid int NOT NULL default '0', hiduke datetime NOT NULL default '0000-00-00 00:00', yoyakusha varchar(50) NOT NULL default '', email varchar(50) NOT NULL default '', tel varchar(50) NOT NULL default '', PRIMARY KEY (roomid,hiduke) ); /* テスト用部屋データ追加 */ INSERT INTO room (roomname, ryoukin) VALUES ('100', 9000); INSERT INTO room (roomname, ryoukin) VALUES ('101', 8000);

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

hidukeがdatetime型なら INSERT IGNORE INTO `yoyaku` (`roomid`, `hiduke`) VALUES ('1', '2006-07-09 00:00:00'); UPDATE `yoyaku` SET `yoyakusha`='xxxx',`email`='yyy@yyy.yyy',`tel`='zzz-zzz-zzz' WHERE `roomid`='1' AND `hiduke`='2006-07-09 00:00:00'; というような書式にすれば、新規予約も予約変更も 対応ができます。

it2008
質問者

お礼

補足です。 直にinsert文を入力しましたが、 datetimeの部分をうまく認識できていないようで、 +--------+---------------------+-----------+-------+-----+ | roomid | hiduke | yoyakusha | email | tel | +--------+---------------------+-----------+-------+-----+ | 1 | 2006-07-12 12:30:00 | a | b | c | | 1 | 0000-00-00 00:00:00 | a | b | c | +--------+---------------------+-----------+-------+-----+ 1行目の入力は受け入れてもらえず、 2行目の入力が有効になります。 お気づきの点、ございましたらご教授のほどお願いします。

it2008
質問者

補足

ご回答ありがとうございます。 いろいろ試してみましたが、 教えて頂いた文法と現状の環境における文法の違いというと、 私には「INSERT」→「INSERT IGNORE」くらいしかわからず、 これを修正してみましたが解決できておりません。 お手数ですが、下記文書においてはどの部分を変更すればよろしいのでしょうか? よろしくお願いします。 $sql = "DELETE FROM yoyaku " . " WHERE roomid = " . cnv_sqlstr($roomid) . " AND hiduke = '" . cnv_sqlstr($hiduke) . "'"; $res = mysql_query($sql, $conn); $sql = "INSERT IGNORE INTO yoyaku (" . " roomid, " . " hiduke, " . " yoyakusha, " . " email, " . " tel " . ") values (" . cnv_sqlstr($roomid) . "," . "'" . cnv_sqlstr($hiduke) . "'," . "'" . cnv_sqlstr($yoyakusha) . "'," . "'" . cnv_sqlstr($email) . "'," . "'" . cnv_sqlstr($tel) . "'" . ")"; $sql = "UPDATE yoyaku set " . " yoyakusha = '" . cnv_sqlstr($yoyakusha) . "'," . " email = '" . cnv_sqlstr($email) . "'," . " tel = '" . cnv_sqlstr($tel) . "'" . " WHERE roomid = " . cnv_sqlstr($roomid) . " and hiduke = '" . cnv_sqlstr($hiduke) . "'"; $res = mysql_query($sql, $conn);