医療ウェブサイトのカレンダーを作成しています。カレンダーの機能は、2013-05-01 のような日付をクリックすると、その日付がデータベースに追加され、午前 9 時から午後 6 時までの時間を選択する必要がある次のページに移動することです。たとえば、午前 9 時のような任意の時間を選択すると、コードは、日付が「2013-05-01」で時刻が「09:00:00」のエントリがデータベースに既に存在するかどうかを確認します。 、私は時間ページにリダイレクトされ、この時間はすでにスケジュールされているというメッセージが表示されます。次に、「10:00:00」などの別の時間をクリックすると、データベースにエントリがないかどうかが再度確認されます。日付が「2013-05-01」で時刻が「10:00:00」の場合、このエントリが追加されます....
データベースにすでにエントリがある場合、「この時間はすでにスケジュールされています」という通知が表示され、時間「10:00:00」をクリックすることに成功しましたが、私のSQLコードにいくつかのエラーがありますが、phpmyadminで実行されているコードをチェックしたところ、問題なく動作しています....何が問題なのかわかりません....
これは私が得るエラーです:
qry_check update failed: SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルを参照して、1 行目の「near '2013-05-01」AND time='10:00:00'' を使用する正しい構文を確認してください。
カレンダー ページ 're_sch_time.php' のコードは次のとおりです。
<?php
if(isset($_GET['result']))
{
$result=$_GET['result'];
if($result=='false')
{
echo "<p>Sorry! This time is already selected for appointment</p>";
}
else
{
echo "<p>Appointment Reschedualed</p>";
}
}
?>
<?php
if(isset($_GET['id']))
{
$id=$_GET['id'];
}
if(isset($_GET['date']))
{
$dat=$_GET['date'];
}
?>
<a href="re_sch_time_selected.php?time=nine&&id=<?php echo $id; ?>&&date=<?php echo $dat ?>">9</a>
<a href="re_sch_time_selected.php?time=ten&&id=<?php echo $id; ?>&&date=<?php echo $dat ?>">10</a>
これは、時間を選択できるページコード 're_sch_time_selected.php' です。
<?php
if(isset($_GET['time']))
{
$time=$_GET['time'];
if(isset($_GET['id']))
{
$id=$_GET['id'];
}
if(isset($_GET['date']))
{
$dat=$_GET['date'];
}
switch($time)
{
case "nine":
$qry_check=mysql_query("SELECT * FROM patient WHERE date='".$dat."' AND time='09:00:00'");
if(!$qry_check)
{
die("qry_check update failed ".mysql_error());
}
else
{
while($time_check=mysql_fetch_array($qry_check))
{
echo $time_check['time'];
$pos=strpos($time_check['time'],'09:00:00');
if($pos===false)
{
$qry_time=mysql_query("UPDATE patient SET time='09:00:00' WHERE id='".$id."'");
if(!$qry_time)
{
die("qry time update failed:".mysql_error());
}
else{
header("Location: re_sch_time.php?result=true&id='".$id."'&date='".$dat."'");
}
}
else{
header("Location: re_sch_time.php?result=false&id='".$id."'&date='".$dat."'");
}
}// while time check ends here
}
break;
case "ten":
$qry_check=mysql_query("SELECT * FROM patient WHERE date='".$dat."' AND time='10:00:00'");
if(!$qry_check)
{
die("qry_check update failed: ".mysql_error());
}
else
{
while($time_check=mysql_fetch_array($qry_check))
{
echo $time_check['time'];
$pos=strpos($time_check['time'],'10:00:00');
if($pos===false){
$qry_time=mysql_query("UPDATE patient SET time='10:00:00' WHERE id='".$id."'");
if(!$qry_time){
die("qry time update failed:".mysql_error());
}else{
header("Location: re_sch_time.php?result=true&id='".$id."'&date='".$dat."'");
}
}
else{
header("Location: re_sch_time.php?result=false&id='".$id."'&date='".$dat."'");
}
}// while time check ends here
}
break;
}
注:このコードは、データベースにまだない日付と時刻を選択している場合、つまり、日付が「2013-05-01」で時刻が「09:00:00」のエントリがない場合のように、まったく問題なく実行されます。エラーが発生せず、エントリがテーブルに挿入されます....