如何组合批处理查询的结果集?

时间:2015-06-27 22:15:58

标签: javascript php quickbooks

quickbooks API仅为任何SQL查询返回1000个项目,因此我需要批量查询。我的问题是,如何在php中将结果一起添加?

$customers = [];
$start_position = 1;
for ($i = 1; $i <= $number_of_queries; $i++) {
    $customers[$i] = $customer_service->query(
        $this->qb->context,
        $this->qb->realm,
        "SELECT * FROM Customer STARTPOSITION " . $start_position . " MAXRESULTS 1000"
    );
    $start_position += 1000;
}

return json_encode($customers);

问题:如何将$customers[1]$customers[2]$customers[3]等合并到一个包含所有客户数据的数组中?

或者,如果做这个客户端更好,那怎样才能在JavaScript中完成?

我查看了array_mergearray operators,但如果密钥相同,这些解决方案会覆盖。

另外,我在JavaScript中查看了concat。但是,我无法让它发挥作用。

有没有人有从批处理查询中组合结果集的经验?

Screen Shot of Console

1 个答案:

答案 0 :(得分:3)

您可以尝试使用PHP的array_merge()函数。

$customers = [];
$start_position = 1;
for ($i = 1; $i <= $number_of_queries; $i++) {
    $results = $customer_service->query(
        $this->qb->context,
        $this->qb->realm,
        "SELECT * FROM Customer STARTPOSITION " . $start_position . " MAXRESULTS 1000"
    );
    $start_position += 1000;
    $customers = array_merge($customers, results);
}

return json_encode($customers);