Generating a perfect loop

时间:2018-06-03 作者:skoen

所以我现在已经在这里坐了大约三个小时了,我不得不让这件事过去几个小时来好好睡一觉,同时我希望能得到你的帮助。

我已经能够使用$wpdb->get\\u results从数据库中获取内容,并且能够将它们放入一个数组中,但是我想使用这些信息在循环中运行一个新的查询,以获取列表中的多个项目。

我使用了本指南的一个变体https://stackoverflow.com/questions/45848249/woocommerce-get-all-orders-for-a-product 获取订单ID。现在,我已经将它们放入了一个数组中,我希望在不获取重复的第一个条目的情况下循环该数组。这是我当前的代码,但它提供了重复的第一个条目。

foreach ($orders_ids as $details) {
  $paameldingid[]=$details->order_id;
  $i=0;
  while ($order_id = $paameldingid[$i]){
$order = wc_get_order($order_id);
$fornavn = $order->get_billing_first_name();
$etternavn = $order->get_billing_last_name();
$deltakerkategori = $order->get_meta( \'_billing_field_447\', true );
$deltakerradio = $order->get_meta( \'_billing_field_538\', true );
echo \'\'.$fornavn.\' \'.$etternavn.\' \'.$deltakerkategori.\'/\'.$deltakerradio.\'<br>\';
 $i++; 
 }
}   
工作示例:http://www.va24.no/paameldinger.php

1 个回复
最合适的回答,由SO网友:coolpasta 整理而成

那是因为由于时间的原因,你循环了两次。完全没有必要。

foreach ($orders_ids as $details) {
    $order = wc_get_order($details->order_id);
    $fornavn = $order->get_billing_first_name();
    $etternavn = $order->get_billing_last_name();
    $deltakerkategori = $order->get_meta( \'_billing_field_447\', true );
    $deltakerradio = $order->get_meta( \'_billing_field_538\', true );
    echo \'\'.$fornavn.\' \'.$etternavn.\' \'.$deltakerkategori.\'/\'.$deltakerradio.\'<br>\';
}
此外,如果由于以下原因而无法解决此问题。。。好吧,magic,试试这个补丁:

foreach( array_unique( $order_ids ) as $details )

但这有味道。令人不快的检查数据,看看哪里出了问题。

结束

相关推荐

$wpdb not returning data

我觉得我的问题的答案很简单。我编写了以下代码来访问已加载到WordPress数据库中的表。我可以在phpMyAdmin中运行查询。它按预期运行。我已经尝试了我所发现的一切,试图让它发挥作用。我的职能:function plcoa_email_address_list () { global $wpdb; $user_count = $wpdb->get_var( \"SELECT COUNT(*) FROM tblLots\" ); echo