簡體   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