###PHPからMYSQLを呼び出すとき"{}"や"'"の使い方がよくわかりません
下の行の78行目のエラーが解決できません。
できれば今後応用できるように考え方をご教授いただければと存じます。
###ソースコード
#!/user/local/bin/php <?php mb_internal_encoding("sjis"); if($_POST["modify"]) modify(); else start(); function start(){ print <<<output <html> <head> <title>modify reserve slot</title> </head> <body> <h1> input day </h1> <form method="post" action="{$_SERVER['PHP_SELF']}"> <label>year<input name="year"type="text" maxlength="4" placeholder="yyyy"></label> <label>month<input name="month" type="text" maxlength="2" placeholder="mm"></label> <label>day<input name="day" type="text" maxlength="2" placeholder="dd"><br></label> <br> <label>rs1<input type="checkbox" name="rs1" value="19:00">start from 19:00</label> <label>rs2<input type="checkbox" name="rs2" value="20:30">start from 20:30</label> <label>rs3<input type="checkbox" name="rs3" value="22:00">start from 22:00</label> <label>rs4<input type="checkbox" name="rs4" value="23:30">start from 23:30</label> <label>rs5<input type="checkbox" name="rs5" value="25:00">start from 25:00</label> <label>rs6<input type="checkbox" name="rs6" value="26:30">start from 26:30 <label>rs7><input type="checkbox" name="rs7" value="28:00">start from 28:00</label> <br> <label>send modify info<input type="submit" name="modify" value="submit"><br>tap or click the button to send modify info</label> </form> </body> </html> output; } function modify(){ $db = new mysqli("localhost", "********", "********", "********"); $db -> set_charset("sjis"); $result = $db -> query("select * from reserveslot order by date desc limit 1"); $row = $result -> fetch_assoc(); $month = (int)$_post["month"]; $day = (int)$_POST["day"]; $year = (int)$_POST["day"]; $dbdate = (int)$row["date"]; $settime = mktime(0, 0, 0, $month, $day, $year); if($dbtime <= $settime){ $days = ($settime - $dbtime) / 86400; for($i = 0;$i <= $days;$i++){ $dbtime += $dbtime + 86400; $db -> query("insert into reserveslot set date={$dbtime}"); } $result = $db -> query("select * from reserveslot where date={$settime}"); $row = $result -> fetch_assoc(); if($row["rs1"] == 0 && $_POST["rs1"]) $db -> query("update reserveslot set rs1=2 where date=$settime"); if($row["rs2"] == 0 && $_POST["rs2"]) $db -> query("update reserveslot set rs2=2 where date=$settime"); if($row["rs3"] == 0 && $_POST["rs3"]) $db -> query("update reserveslot set rs3=2 where date=$settime"); if($row["rs4"] == 0 && $_POST["rs4"]) $db -> query("update reserveslot set rs4=2 where date=$settime"); if($row["rs5"] == 0 && $_POST["rs5"]) $db -> query("update reserveslot set rs5=2 where date=$settime"); if($row["rs6"] == 0 && $_POST["rs6"]) $db -> query("update reserveslot set rs6=2 where date=$settime"); if($row["rs7"] == 0 && $_POST["rs7"]) $db -> query("update reserveslot set rs7=2 where date=$settime"); } if($dbdate >= $settime){ $result = $db -> query("select * from reserveslot where date={$settime}"); // この行のSQLの書き方に問題がありそうです $row = $result -> fetch_assoc(); if($row["rs1"] == 0 && $_POST["rs1"]) $db -> query("update reserveslot set rs1=2 where date=$settime"); if($row["rs2"] == 0 && $_POST["rs2"]) $db -> query("update reserveslot set rs2=2 where date=$settime"); if($row["rs3"] == 0 && $_POST["rs3"]) $db -> query("update reserveslot set rs3=2 where date=$settime"); if($row["rs4"] == 0 && $_POST["rs4"]) $db -> query("update reserveslot set rs4=2 where date=$settime"); if($row["rs5"] == 0 && $_POST["rs5"]) $db -> query("update reserveslot set rs5=2 where date=$settime"); if($row["rs6"] == 0 && $_POST["rs6"]) $db -> query("update reserveslot set rs6=2 where date=$settime"); if($row["rs7"] == 0 && $_POST["rs7"]) $db -> query("update reserveslot set rs7=2 where date=$settime"); } $result = $db -> query("select * from reserveslot where date='{$settime}'"); $row = $result -> fetch_assoc(); print <<<output <html> <head> <title>update results</title> </head> <body> <h1> updated lists </h1> date=<?php=printf("%i/%i/%i",idate("Y",$settime),idate("m",$settime),idate("d",$settime));?><br> <dl> <dt>rs1</dt><dd>{$row['rs1']}</dd> <dt>rs2</dt<dd>{$row['rs2']}</dd> <dt>rs3</dt><dd>{$row['rs3']}</dd> <dt>rs4</dt><dd>{$row['rs4']}</dd> <dt>rs5</dt><dd>{$row['rs']}</dd> <dt>rs6</dt><dd>{$row['rs6']}</dd> <dt>rs7</td><dd>{$row['rs7']}</dd> </dl> <a href="none_accept_slot.php">続けてとうろくする</a> </body> </html> output; $db -> close(); } ?>
###やりたいこと
予約システムではrs1~rs7が0であれば予約可能な時間帯として表示され、予約が確定すると1がいれられますが、都合で予約をあらかじめ入れられないようにするために、値を2に変えるスクリプトです。
変更結果も返すように作ったつもりですが、変更結果は表示されません。
"{}"や"'"を取ったり入れたりしてみましたが、基本的な考え方がわかっていないのか、何れもエラーになったり、意図した動きをしてくれません。
###お願い
全く目がみえないので、できる範囲の配慮をお願いします。
回答1件
あなたの回答
tips
プレビュー