我有一个问题,似乎我的代码是不正确的。我想要的就是防止数据重复。在这个数组提交表单结果中,如果用户已经有了这种类型的行,他只能插入不在表中的数据。我当前的代码不会插入所有数据。但是如果删除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]')");
}
}
}
}
}
发布于 2013-05-02 13:25:42
我建议在表的唯一列上放置一个主键,然后使用INSERT IGNORE查询加载(忽略,这样它就不会在重复项上抛出错误)。
https://stackoverflow.com/questions/16339151
复制