我正在尝试从两个数组中将值插入表中。我需要将 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] ...
我不明白我应该在哪里更改代码。任何人都可以帮助我..
答案 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++;
}
?>