2016-08-30 100 views
0

我想執行一個sql查詢,以便它檢查id是否存在唯一的日期,這意味着特定的id不能具有相同的日期。用於檢查特定ID的SQL查詢是否具有相同的日期

$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可以有相同的日期。

+3

請發佈一些測試數據和所需的結果。您的要求不明確。 –

+0

好吧,我正在編輯代碼 – Pittz

+0

實際上,它確實允許其他PersonI具有相同的日期!我們不知道你期望的結果,所以我們真的無法幫助你很好地用測試數據更新你的答案,結果會很好。此外,狀態的表定義,因爲如果DATE包含時間,它可能是您的問題的一部分。標記您正在使用的關係數據庫管理系統rdbms! mysql,sql-sever,oracle等 – Matt

回答

0

您的代碼不起作用,因爲您的第一個查詢會檢查給定日期是否有任何記錄。相反,您應該檢查給定日期是否有相同的PersonID記錄。

變化:

SELECT PersonID FROM status WHERE Date='$Date' 

要:

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

你也應該學會使用準備好的語句和參數化查詢,因爲插入您從客戶端得到數據,直接到你的查詢是不安全的。

相關問題