-1

データベースに情報を挿入できるようにする次のコードがあります。

$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());
}
}

ポイントは、配列 date がこの値 [1,2] を持ち、配列 pdv がこの値 [1,2,3] を持っている場合、データベースで取得する必要があるのは次のとおりです。

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

しかし、私はしません... データベースで繰り返し値を取得します... 配列の長さなどを使用する必要がありますか? ありがとう!

4

1 に答える 1

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

于 2012-09-19T07:16:25.853 に答える