[英]Insert rows from two arrays into mysql table in php
我試圖將值從兩個數組插入表中。 我需要將array1和array2中的相應值作為行插入表中。 即,表行看起來像:
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.