2013-05-02 22 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查询加载(忽略,因此不会扔在重复错误)。