【发布时间】:2014-06-10 20:25:36
【问题描述】:
您好,我使用以下查询需要从此查询中获取 order_id 和 product_id,
好吧,当我在 phpmyadmin 中运行查询时,结果会显示出来。
global $wpdb;
$sql = "SELECT oi.order_id, p.ID as product_id, p.post_title, p.post_author as seller_id,
oim2.meta_value as order_total, terms.name as order_status
FROM {$wpdb->prefix}woocommerce_order_items oi
LEFT JOIN {$wpdb->prefix}woocommerce_order_itemmeta oim ON oim.order_item_id = oi.order_item_id
LEFT JOIN {$wpdb->prefix}woocommerce_order_itemmeta oim2 ON oim2.order_item_id = oi.order_item_id
LEFT JOIN $wpdb->posts p ON oim.meta_value = p.ID
LEFT JOIN {$wpdb->term_relationships} rel ON oi.order_id = rel.object_id
LEFT JOIN {$wpdb->term_taxonomy} tax ON rel.term_taxonomy_id = tax.term_taxonomy_id
LEFT JOIN {$wpdb->terms} terms ON tax.term_id = terms.term_id
WHERE
oim.meta_key = '_product_id' AND
oim2.meta_key = '_line_total'
GROUP BY oi.order_id";
$orders = $wpdb->get_results( $sql );
if ( $orders ) {
foreach ($orders as $order) {
$result=customFunction(**$order->order_id,$order->product_id,$order->seller_id**);
}
问题是 $order->order_id 和 $order->product_id 值没有被传递给函数,而只有 $order->seller_id 被传递。但在 phpmyadmin 中,所有三个变量的值都存在。
试过了
echo $orders[product_id] ;
echo $orders[order_id] ;
echo $orders[seller_id];
小屋只有echo $orders[seller_id]; 显示值。
数组结构如下:
Array (
[0] => stdClass Object (
[order_id] => 2774
[product_id] => 2531
[post_title] => Klassic Koalas Mug
[seller_id] => 3
[order_total] => 12
[order_status] => cancelled
)
[1] => stdClass Object (
[order_id] => 2869
[product_id] => 2622
[post_title] => Mug, Aqua
[seller_id] => 1
[order_total] => 1
[order_status] => on-hold
)
【问题讨论】:
-
你的 echo 语句肯定行不通。 $orders 将是一个集合,在这种情况下是一个对象数组。转储 $orders 看看你会得到什么。
-
函数调用中的 2
**是什么意思?你在哪里编码你说不起作用的回声?? -
$result=customFunction($order->order_id,$order->product_id,$order->seller_id); 2** 选择了 echo 并按下 cntrl +B 使其变为粗体。但它没有用。
标签: php mysql foreach wordpress