php mysql查询错误与“where”

时间:2012-11-06 01:07:40

标签: php mysql where

我正在我们的客户订单数据库上运行查询,以查看上周的销售情况。查询如下所示:

select
distinct day(from_unixtime(customerorder.datetime)) as day,
count(distinct customerorder.customerorderid) as count_totalorders,
count(distinct customerorderpos.itemid) as count_differentitems,
sum(customerorderpos.quantity_ordered) as quantity_ordered,
sum(customerorderpos.itemsubtotal) as item_subtotal,
sum(customerorderpos.pricechangetotal) as item_pricechangetotal,
sum(customerorderpos.itemtotal) as item_total,
sum(customerorderpos.purchase_price * customerorderpos.quantity_ordered) as item_purchasepricetotal,
sum(distinct cart_discounttotal) as total_discount,
sum(customerorderpos.itemtotal - (customerorderpos.purchase_price * customerorderpos.quantity_ordered) - (select distinct cart_discounttotal)) as item_earningstotal,
sum(distinct cart_total_shipping) as total_shipping,
sum(distinct cart_total_tax) as total_tax,
sum(distinct cart_total_complete) as total_complete
from customerorder
inner join customerorderpos on customerorder.customerorderid = customerorderpos.customerorderid
where
customerorder.datetime >= 1351494000 and
customerorder.status_cancelled = "0"
group by day(from_unixtime(customerorder.datetime))
order by customerorder.datetime

当我在PhpMyAdmin中输入查询时工作正常并显示最近7天的订单。但是当我们在自己的软件中运行它时会出错。

$result = $db->query($query);
while ($row = $result->fetch_assoc()){

这表明:“致命错误:在非对象上调用成员函数fetch_assoc()”

但....如果我从查询中取出“where customerorder.datetime> = 1351494000”,它可以正常工作。 换句话说,查询完美无缺,直到我想将其限制在特定时间。 Customerorder.datetime是一个带有时间戳的int(11)列。

任何想法可能是什么问题?

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

我认为这里的问题是在这一部分

      customerorder.datetime >= 1351494000

像这样:

      customerorder.datetime >= '1351494000'

您必须将其封闭才能使其正常工作。希望这有帮助。

答案 1 :(得分:0)

感谢您的帮助。我发现了问题,但这当然是我自己的错误! 实际的SQL语法很好,我只是在我们自己的软件中出错($ query正在运行一个清理函数,取代了“> =”字符,使查询无效)。

抱歉浪费你的时间:(