gpt4 book ai didi

php - 在 PHP 中迭代 MySQLi 结果数组中的行以存储为新的嵌套数组

转载 作者:行者123 更新时间:2023-11-29 18:11:23 26 4
gpt4 key购买 nike

首先我必须说我对 PHP 还很陌生。我正在慢慢地了解 RTFM 的功能...我正在使用程序风格的 PHP 和 MYSQLi,因为我目前正在与 PDO 作斗争。

下面的问题我已经被卡住了一段时间,我担心如果我继续改变和修改,我会在一个洞里挖得更深,而不是把它放在那里寻求一些有希望的帮助。

我有来自 MySQL 数据库内的 EPOS 系统的数据。我在 PHP 的 foreach 循环内通过许多 Curl 处理程序填充了这些数据,因为 EPOS 系统 API 需要对每个数据片段进行不同的调用,例如交易 header 、交易项目、投标、客户等...

现在我有了这些数据,我需要将父:子元素收集到多维数组中,最终一旦我正确地设置了这些数组,就将数据输出到管道分隔的文件中,以便导入到第三方系统中。我计划运行这个 PHP 文件,通过 Windows 计划任务以配置的频率轮询数据库,其中有几个任务已经在生产环境中成功运行用于其他进程。

我希望能够以与获取数据的过程类似的方式处理这些数据,并在 PHP 中使用嵌套的 foreach 循环来填充一个数组,然后将其输出到文件。

我可以使用事务 ID 填充第一个数组,以创建用于获取父记录的主键,但随后我似乎在 foreach 循环中的子查询中遇到意外结果。

我似乎使用下面的内容创建 12 个空数组作为子查询,并且不确定我需要如何将子元素作为多维数组添加到这些父数组中?

我当前的代码如下:

<?php
//Error Reporting in Browser - DEV ONLY.
error_reporting(E_ALL); ini_set('display_errors', 1);

//get config & includes
include 'config.php';
include 'functions.php';

//Set runtime var of script
$rt = date('Y-m-d H:i:s');

// connect to the mysql database
$link = $con;
mysqli_set_charset($link,'utf8');

$sql = "SELECT DISTINCT TransactionId FROM epos_transactions WHERE Processed = 0";

$tranresult = mysqli_query($link, $sql);

if (mysqli_affected_rows($link) >= "0") {
http_response_code(200);
}
elseif (mysqli_affected_rows($link) == "-1") {
$err = mysqli_errno($link) . " : " . mysqli_error($link);
exceptions_logger($err);
}

$transac = $tranresult->fetch_all(MYSQLI_ASSOC);

//Loop each transactionID & Produce TH Records.
foreach($transac as $row)
{
$TransactionId = $row['TransactionId'];

unset($sql);
$sql = "SELECT * FROM EPOS.TH where Trans_ID = $TransactionId";

$resulth = mysqli_query($link, $sql);

if (mysqli_affected_rows($link) >= "0") {
http_response_code(200);
}
elseif (mysqli_affected_rows($link) == "-1") {
$err = mysqli_errno($link) . " : " . mysqli_error($link);
exceptions_logger($err);
}

$throw = $resulth->fetch_all(MYSQLI_ASSOC);
}
var_dump($throw); //Only returning one result instead of 12 outside of loop?
?>

上面的代码选择适合导出的交易 ID,然后尝试选择数组的父行的数据,之后我需要为每个父行选择子元素并将它们存储在数组中最终也可以输出到一个文件,其中每个交易都会列出其父项和子项。

我稍后将处理文件输出过程,但我真的希望获得有关循环过程的一些提示来帮助最初获取数据集。

提前致谢。

最佳答案

通过此处的一些进一步研究解决了这个问题。最初需要在 foreach 循环外部设置数组,然后允许在填充后在循环外部读取结果。

关于php - 在 PHP 中迭代 MySQLi 结果数组中的行以存储为新的嵌套数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47370853/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com