将两个数组中的行插入php中的mysql表中

时间:2014-11-04 09:57:52

标签: php mysql arrays

我正在尝试从两个数组中将值插入表中。我需要将 array1 array2 中的相应值作为一行插入到表中。即,表格行如下所示:

value1, array1[0], array2[0] ...
value1, array1[1], array2[1] ...

我尝试用两个foreach循环来做。但内圈的价值正在重复。 这是我的代码:

<?php
$servicetype=$_POST['servicetype'];
$serviceamt=$_POST['amount'];
foreach($servicetype as $sertype)
{
foreach($serviceamt as $seramt)
{
$amcinsert2=mysql_query("insert into amc_service_types (amc_service_id,service_type,service_amount) values('$id','$sertype','$seramt')");
break;
}

}
?>

执行此操作时,表格如下所示:

value1, array1[0], array2[0] ...
value2, array1[1], array2[0] ...
value3, array1[2], array2[0] ...

我不明白我应该在哪里更改代码。任何人都可以帮助我..

2 个答案:

答案 0 :(得分:1)

如果您的数组都是数字索引并具有相同的键,您可以像这样循环它们:

for( $i = 0 ; $i < count( $servicetype ) ; $i++ ) {
  $amcinsert2=mysql_query("insert into amc_service_types (amc_service_id,service_type,service_amount) values('$id','" . $servicetype[$i] "','" . $serviceamt[$i] . "')");

}

此外,不推荐使用mysql_ *函数,您应该用PDO或mysqli_ *函数替换它们。

答案 1 :(得分:1)

在开始时你必须确保你有两个数组相同的大小,实际上你正在做的将添加n * n组合到mysql,而不是你想做什么,休息将逃脱for循环无论如何第一次运行将是第一个数组[0],所以尝试这样做:

<?php
$servicetype=$_POST['servicetype'];
$serviceamt=$_POST['amount'];
var i=0;
foreach($servicetype as $sertype)
{
$amcinsert2=mysql_query("insert into amc_service_types (amc_service_id,service_type,service_amount) values('$id','$sertype','$serviceamt[$i]')");
$i++;  
}
?>