2013-05-02 57 views
0

我有一個問題,似乎我的代碼是不正確的。我想要的是防止數據重複。在這個數組提交表單結果中,如果用戶已經有了這種行,他只能插入不在表中的數據。我目前的代碼不會插入所有數據。但是,如果刪除if else語句,則可以插入循環中的所有數據。if/else對於非重複的數據

if(isset($_POST['submit'])) 
    { 
     $var_emp_id = $_POST["emp_id"]; 
     $var_task_id = $_POST["task_id"]; 
     $var_weight = $_POST['weight']; 
     $submit=$_POST['submit']; 

     for ($i = 0; $i <= count($var_emp_id); $i++) 
     { 
      $sql=mysql_query("SELECT emp_id,task_id FROM peval_tbl WHERE emp_id = '$var_emp_id[$i]' AND task_id = '$task_id[$i]'"); 

      while($row=mysql_fetch_assoc($sql)) 
      { 

       $emp_id = $row['emp_id']; 
       $task_id = $row['task_id']; 

       if ($var_emp_id[$i] == $emp_id && $var_task_id[$i] == $task_id){ 
       mysql_query("INSERT IGNORE INTO peval_tbl(weight,task_id,emp_id)       VALUES('$var_weight[$i]','$var_task_id[$i]','$var_emp_id[$i]')");         

      } 
     else{ 
      error_reporting(E_ALL^E_NOTICE); 

      for ($i = 0; $i <= count($var_emp_id); $i++) 
     { 
     mysql_query("INSERT INTO peval_tbl(weight,task_id,emp_id)       VALUES('$var_weight[$i]','$var_task_id[$i]','$var_emp_id[$i]')"); 

     } 
     } 
     } 
    } 
    } 

回答

0

我建議把上特有列(S)上表的主鍵,然後使用INSERT IGNORE查詢加載(忽略,因此不會扔在重複錯誤)。