用于检查特定ID的SQL查询是否具有相同的日期

时间:2016-08-30 17:39:58

标签: php sql database

我想执行一个sql查询,以便检查id是否有唯一的日期,这意味着特定的id必须没有相同的日期。

$query = "SELECT PersonID FROM status WHERE Date='$Date'  ";
    $result = mysql_query($query);

    $count = mysql_num_rows($result); // if email not found then register

    if($count == 0){


         if(mysql_query("INSERT INTO status(PersonID,FirstName,Status, Date) VALUES('$PersonID','$FirstName','$Status','$Date')"))
        {
            ?>
            <script>alert('successfully Added ');</script>
            <?php
        }
        else
        {
            ?>
            <script>alert('error while registering you...');</script>
            <?php
        }   
    }

    else{
            ?>
            <script>alert('Sorry Attendence already taken ...');</script>
            <?php
    }

}

但是使用此查询时,它不允许其他ID具有相同的日期。我想过滤特定ID的唯一日期。另一个id可以有相同的日期。

1 个答案:

答案 0 :(得分:0)

您的代码无法正常工作,因为您的第一个查询会检查给定日期是否有任何记录。相反,您应该检查在给定日期是否存在具有相同PersonID的记录。

变化:

SELECT PersonID FROM status WHERE Date='$Date'  

要:

SELECT PersonID FROM status WHERE Date='$Date' AND PersonID = '$PersonID'

您还应学会使用预准备语句和参数化查询,因为将从客户端直接插入的数据插入查询中并不安全。