php if else keep run else else语句

时间:2014-09-15 10:14:14

标签: php sql if-statement

我做了一个预约课堂功能 如果用户预订已经预订的教室,我想回应一个声明。 我测试它以查看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;
                }

            }

1 个答案:

答案 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',我的意见是不使用它,因为它可能会导致混淆,并且在某些情况下也会返回错误。