繁体   English   中英

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

[英]Insert rows from two arrays into mysql table in php

我试图将值从两个数组插入表中。 我需要将array1array2中的相应值作为行插入表中。 即,表行看起来像:

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

我尝试用两个foreach循环来做。 但是innerloop内部的值是重复的。 这是我的代码:

<?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] ...

我不知道该在哪里更改代码。 谁能帮我..

如果数组都被数字索引并且具有相同的键,则可以像这样循环遍历它们:

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_ *函数。

在开始时,您必须确保两个数组的大小相同,实际上您正在执行的操作会向mysql添加n * n个组合,而不是您想执行的操作,该中断将从第一次运行时退出for循环无论如何,它将成为第一个array [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++;  
}
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM