我想执行一个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可以有相同的日期。
答案 0 :(得分:0)
您的代码无法正常工作,因为您的第一个查询会检查给定日期是否有任何记录。相反,您应该检查在给定日期是否存在具有相同PersonID
的记录。
变化:
SELECT PersonID FROM status WHERE Date='$Date'
要:
SELECT PersonID FROM status WHERE Date='$Date' AND PersonID = '$PersonID'
您还应学会使用预准备语句和参数化查询,因为将从客户端直接插入的数据插入查询中并不安全。