【问题标题】:Need to iterate through array to capture all rows - currently only saving the number in the [0] or first record需要遍历数组来捕获所有行——目前只保存[0]或第一条记录中的数字
【发布时间】:2019-09-17 16:06:13
【问题描述】:

我可以使用一些帮助来存储数组。下面定义的过程正在运行并保存记录!它保存在 [0] 列中定义的记录。如果那里是零,则保存记录一,如果那里是一,则保存记录二,依此类推。

现在我需要自动执行此操作,以便在迭代时为 EACH RECORD 执行此操作。也许第二个 foreach 语句将它们联系在一起?还是带有整数变量的 for 循环?我尝试了很多组合,但仍然无法正常工作。

//0 = feeobject row[]: to keyfield=>val
            //Array ([0] => 0)

foreach($AgencyFeesBasicArray['AgencyFeesGetInfoResult']['FeeObject'][0] as $key=>$data ) {  


            $PaymentID = $AgencyFeesBasicArray['AgencyFeesGetInfoResult']['FeeObject'][0]['PaymentID'];
            $ClientID = $AgencyFeesBasicArray['AgencyFeesGetInfoResult']['FeeObject'][0]['ClientID'];
            $ClientName = $AgencyFeesBasicArray['AgencyFeesGetInfoResult']['FeeObject'][0]['ClientName'];
            $Account_ID = $AgencyFeesBasicArray['AgencyFeesGetInfoResult']['FeeObject'][0]['Account_ID'];
            $State = $AgencyFeesBasicArray['AgencyFeesGetInfoResult']['FeeObject'][0]['State'];  
            $PaymentDate = $AgencyFeesBasicArray['AgencyFeesGetInfoResult']['FeeObject'][0]['PaymentDate'];
            $Amount = $AgencyFeesBasicArray['AgencyFeesGetInfoResult']['FeeObject'][0]['Amount'];
            $CheckID = $AgencyFeesBasicArray['AgencyFeesGetInfoResult']['FeeObject'][0]['CheckID'];
            $CreditorName = $AgencyFeesBasicArray['AgencyFeesGetInfoResult']['FeeObject'][0]['CreditorName'];
            $DRC_ClientID = $AgencyFeesBasicArray['AgencyFeesGetInfoResult']['FeeObject'][0]['DRC_ClientID'];      
            $DRC_TransactionID = $AgencyFeesBasicArray['AgencyFeesGetInfoResult']['FeeObject'][0]['DRC_TransactionID'];

            $sql = "INSERT INTO  tblAgencyFees (PaymentID, ClientID, ClientName, Account_ID, State, PaymentDate, Amount, CheckID, CreditorName, DRC_ClientID, DRC_TransactionID) VALUES ('".$PaymentID."', '".$ClientID."', '".$ClientName."', '".$Account_ID."', '".$State."', '".$PaymentDate."', '".$Amount."', '".$CheckID."', '".$CreditorName."', '".$DRC_ClientID."', '".$DRC_TransactionID."')";
            mysqli_query($connection, $sql);
        }
      //}
    //}
echo $sql;

$res = mysqli_query($connection, $sql);
If( !$res ) exit( mysqli_error($connection) );

数组:

Array ( 
    [AgencyFeesGetInfoResult] => Array ( 
        [FeeObject] => Array ( 
            [0] => Array ( 
                [PaymentID] => 816 
                [ClientID] => 1141 
                [ClientName] => Ortega, Daniel 
                [Account_ID] => 2222100000010717 
                [State] => OK 
                [PaymentDate] => 2019-07-31T00:00:00 
                [Amount] => 8.0000 
                [CheckID] => 10 
                [CreditorName] => 0 
                [DRC_ClientID] => 1195 
                [DRC_TransactionID] => 
            ) 
            [1] => Array ( 
                [PaymentID] => 817 
                [ClientID] => 1141 
                [ClientName] => Ortega, Daniel 
                [Account_ID] => 2222100000010717 
                [State] => OK 
                [PaymentDate] => 2019-07-31T00:00:00 
                [Amount] => 92.0000 
                [CheckID] => 11 
                [CreditorName] => MF 
                [DRC_ClientID] => 1195 
                [DRC_TransactionID] => 
            ) 
            [2] => Array ( 
                [PaymentID] => 847 
                [ClientID] => 1141
                [ClientName] => Ortega, Daniel 
                [Account_ID] => 2222100000010717 
                [State] => OK 
                [PaymentDate] => 2019-08-14T13:21:49.23 
                [Amount] => 195.0000 
                [CheckID] => 13 
                [CreditorName] => MF 
                [DRC_ClientID] => 1195 
                [DRC_TransactionID] => 
            ) 
        ) 
    ) 
)

【问题讨论】:

标签: mysql arrays foreach


【解决方案1】:

您可以对数据进行简单循环并进行多次插入。

$arrFeeObjects = $AgencyFeesBasicArray['AgencyFeesGetInfoResult']['FeeObject'];

if(count($arrFeeObjects) > 0)
{
    foreach($arrFeeObjects as $intKey => $data)
    {
         $sql = "INSERT INTO  tblAgencyFees (PaymentID, ClientID, ClientName, Account_ID, State, PaymentDate, Amount, CheckID, CreditorName, DRC_ClientID, DRC_TransactionID) 
                VALUES ('". $data['PaymentID'] ."', '". $data['ClientID'] ."', '". $data['ClientName'] ."', '". $data['Account_ID'] ."', '". $data['State'] ."', '". $data['PaymentDate'] ."', '". $data['Amount'] ."', '". $data['CheckID'] ."', '". $data['CreditorName'] ."', '". $data['DRC_ClientID'] ."', '". $data['DRC_TransactionID'] ."')";

         mysqli_query($connection, $sql);
    }
}

【讨论】:

  • 这有一个例外:我收到重复的条目错误消息。插入 tblAgencyFees(PaymentID、ClientID、ClientName、Account_ID、State、PaymentDate、Amount、CheckID、CreditorName、DRC_ClientID、DRC_TransactionID)值('847'、'1141'、'Ortega、Daniel'、'2222100000010717'、'OK'、 '2019-08-14T13:21:49.23', '195.0000', '13', 'MF', '1195', '') 键 'PRIMARY' 的重复条目 '847' 这是最后的记录 - 所有三个保存正常,但正在显示。
猜你喜欢
  • 1970-01-01
  • 2014-10-22
  • 2012-07-29
  • 1970-01-01
  • 1970-01-01
  • 2019-04-18
  • 2021-07-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多