我做了一个预约课堂功能 如果用户预订已经预订的教室,我想回应一个声明。 我测试它以查看ifelse语句是否有效但是在EL {{}内的SQL INSERT是否在IF {}之后运行一次 我不知道为什么,也找不到什么是错误
$class=$_POST['class'];
$time=$_POST['time'];
$date=$_POST['date'];
$type=$_SESSION['type'];
$query=mysql_query("SELECT * FROM classroom");
while($row=mysql_fetch_array($query))
{
if ($row['name']==$class && $row['date']==$date && $row['time']==$time)
{
echo "The class at this time already been booked.";
}
else
{
mysql_query("INSERT INTO classroom(name,date,time,bookedby) VALUES('$class','$date','$time','$type')");
if ($_SESSION['username']=='admin') {
mysql_query("UPDATE classroom SET status='yes' WHERE name='$class' AND date='$date' AND time='$time'");
}
echo "booking submitted";
break;
}
}
答案 0 :(得分:0)
您使用的逻辑不正确。请尝试使用此代码。
$class=$_POST['class'];
$time=$_POST['time'];
$date=$_POST['date'];
$type=$_SESSION['type'];
$query=mysql_query("SELECT * FROM classroom where name='$class' && date='$date' && time='$time'");
if(mysql_num_rows($query)>0)
{
echo "The class at this time already been booked.";
}
else
{
mysql_query("INSERT INTO classroom(name,date,time,bookedby) VALUES('$class','$date','$time','$type')");
if ($_SESSION['username']=='admin') {
mysql_query("UPDATE classroom SET status='yes' WHERE name='$class' AND date='$date' AND time='$time'");
}
echo "booking submitted";
break;
}
我刚修改了你的代码。最好学习mysqli / pdo的用法并替换mysql的用法,因为它已被弃用。
最好将列名'date'更改为其他名称,因为date是预定义的mysql关键字。即使它没有包含在保留字和mysql允许使用'date',我的意见是不使用它,因为它可能会导致混淆,并且在某些情况下也会返回错误。