使用foreach函数插入时重复错误

时间:2012-09-18 15:39:56

标签: php

我有这段代码,允许我在数据库中插入一些信息:

$att_id=$_REQUEST['att_id'];

$date=$_REQUEST['date'];
$pdv=$_REQUEST['checkbox'];

foreach($date as $val) {
foreach ($pdv as $pdv1) {
$values_arr[] = "('" . $val . "','" . $pdv1 . "','" . $att_id . "')";

$values = implode(", ", $values_arr);

$sql="INSERT INTO date_pdv (date,id_pdv,att_id) VALUES $values";
mysql_query($sql)or die(mysql_error());
}
}

现在,关键是如果数组日期有这个值[1,2]并且数组pdv有这些[1,2,3]我应该在数据库中得到的是:

1-1
1-2
1-3
2-1
2-2
2-3

但我不...我在数据库上得到重复的值...我应该使用任何长度的数组..等等? 谢谢!

1 个答案:

答案 0 :(得分:0)

$att_id=$_REQUEST['att_id'];
$date=$_REQUEST['date'];
$pdv=$_REQUEST['checkbox'];

foreach($date as $val) {
  foreach ($pdv as $pdv1) {
    $values_arr[] = "('" . $val . "','" . $pdv1 . "','" . $att_id . "')";
  }
}
$values = implode(", ", $values_arr);
$sql="INSERT INTO date_pdv (date,id_pdv,att_id) VALUES $values";
mysql_query($sql)or die(mysql_error());

您在循环的每次迭代中都运行了插入查询,这就是为什么最终会出现大量重复行的原因。

请注意}

上的结束foreach的位置