我有这样的查询:
"SELECT product.title, SUM(order_product.item_count) AS total
FROM `order_product`
INNER JOIN product ON product.id=order_product.product_id
WHERE order_product.updated BETWEEN '$startInterval'
AND '$endInterval'
AND order_product.status=5
GROUP BY order_product.product_id"
我成功地完成了。然后我将结果提取给一个对象。这里的麻烦是当我尝试打印“SUM(order_product.item_count)”这样的值时:
foreach ($revenue as $value): ?>
<tr>
<td class="text-left"><?= $value->title ?></td>
<td class="text-left"> **<?= $value->SUM(order_product.item_count) ?>**</td>
</tr>
<?php endforeach; ?>
它返回错误:“致命错误:未捕获错误:在”中调用未定义的方法stdClass :: SUM() 帮助我,我尝试了很多方式,如别名sql,但它不起作用。
以下是查询后的结果:
<?php
var_dump($revenue);
if(isset($revenue)):
foreach ($revenue as $value): ?>
<?= $value->title ?>
<?= $value->total ?>
<?php endforeach; endif; ?>
array(2) { [0]=> object(stdClass)#8 (2) { ["title"]=> string(7) "1234123" ["SUM(order_product.item_count)"]=> string(6) "123123" } [1]=> object(stdClass)#9 (2) { ["title"]=> string(8) "tresadas" ["SUM(order_product.item_count)"]=> string(3) "999" } }
p / s:修复!
答案 0 :(得分:6)
将<?= $value->SUM(order_product.item_count) ?>
更改为<?= $value->total) ?>
。这是因为您在查询中将SUM(order_product.item_count)
别名为total
。
答案 1 :(得分:3)
使用
$value->total
您在MySQL查询中将其定义为total
,因此您可以在结果对象中使用它