问题描述
我正在尝试执行 2 个不同的 sql 命令,但由于它显示的速度(速度更快并且可以处理大量数据),我最近切换到 RethinkDB。
UPDATE => 好的,现在我才意识到,它向我展示了错误,但第一个数组,它让我获得了 address_id。看起来像是订单混乱。 Check the error message here
我遇到了连接或多个查询的问题。
我想要的原始sql语句是:
"SELECT payments.*,addresses.input_address,addresses.destination_address FROM payments,addresses WHERE addresses.callback_url = :callback_url AND payments.address_id = addresses.id AND payments.forwarded = 1"
但是使用 rethink github repo for PHP here,它并没有表明您可以使用 AND。
这是我的 rethinkdb PHP 代码,我不得不分成 2 个不同的查询,然后我的想法是将它们合并到一个数组中,然后在那里施展魔法。
我现在的问题是它不允许我深入研究合并的数组以获取例如 address_id ... id 如果我尝试从第一个数组而不是第二个数组中抓取,则工作正常。
我收到通知:未定义索引:address_id
我用来尝试合并数组并在两个数组中挖掘以比较数据的完整代码:
function array_merge_alternating($array1,$array2)
{
$mergedArray = array();
while( count($array1) > 0 || count($array2) > 0 )
{
if ( count($array1) > 0 )
$mergedArray[] = array_shift($array1);
if ( count($array2) > 0 )
$mergedArray[] = array_shift($array2);
}
return $mergedArray;
}
$paymentsArray = \r\table('payments')->filter(\r\row('forwarded')->eq(1))->run($this->conn);
$paymentsArrayDone = $paymentsArray->toArray();
$addressesArray = \r\table('addresses')->filter(\r\row('callback_url')->eq(_get("callback")))->run($this->conn);
$addressesArrayDone = $addressesArray->toArray();
// Merge the 2 arrays
$mergedArray = array_merge_alternating($addressesArrayDone,$paymentsArrayDone);
$f = 0;
foreach ($mergedArray as $arried) {
$thisArray = (array)$arried;
echo 'THE `id` is: '.$thisArray['id'];
echo 'THE `address_id` is: '.$thisArray['address_id'];
print_r($thisArray);
if($thisArray['address_id'] == $thisArray['id']) {
echo '<pre>';
print_r($thisArray);
echo '</pre>';
}
$f++;
}
有人知道吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)