質問: date(Ymd, $tomorrow); } $ren++; } $m++; //ここが合っていない? } ```
回答: 明らかな間違いや良くないところが多数あり、基本的な部分から勉強された方が良いように思います。 * `mysql_*`系の関数は古すぎて非推奨です * `SET NAMES utf-8`で文字エンコーディングを指定してはいけません * SQLに変数が直接埋め込まれており、事前にエスケープしていない場合はSQLインジェクションが可能になります。プレースホルダを使いましょう。(勧められませんが)エスケープする場合は漏れを防ぐため組み立てと同時やるのがセオリーです。 * コメントでも指摘があるとおり、行数が必要なら取得した結果をループで回すのではなく`COUNT`を使いましょう。 * 連想配列のキーが`'`や`"`で括られておらず文字列リテラルになっていませんがいいんでしたっけ? * 連想配列から`room_id`をキーとする値を取得しようとしていますが、提示されたデータには含まれていません。(`type`の誤り?) * 同様に`reserve_Day`も。(`reserve_day`の誤り?) * 「連日予約」を処理しているループは、`$renpaku`の値を加算するだけでよいので不要 宿泊予約ということですが、トランザクションを適切に扱わないとダブルブッキングのようなことがおきます(参考:嵐のコンサートがあるとダブルブッキングしてしまうホテル予約システムを作ってみた | 徳丸浩の日記。 webアプリケーションは注意しないと簡単にセキュリティホールを作り込んでしまいます。少なくともIPAの安全なwebサイトの作り方は読んだ方がよいでしょう。「体系的に学ぶ 安全なWebアプリケーションの作り方」(ISBN 4797361190)など信頼できる書籍で勉強されることをお勧めします。 PHPそのものの入門書についてはおすすめ出来るものを知りません(読んだことないので)が、"「いちばんやさしいPHPの教本」のレビューを担当しました | 徳丸浩の日記"の書評は参考になると思います。