1

顧客注文データベースでクエリを実行して、先週の売上を確認しています。クエリは次のようになります。

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) 列です。

問題の可能性はありますか?

ご協力いただきありがとうございます!

4

2 に答える 2

0

問題はこの部分にあると思います

      customerorder.datetime >= 1351494000

次のようにします。

      customerorder.datetime >= '1351494000'

機能させるには、それを囲む必要があります。この助けを願っています。

于 2012-11-06T01:25:43.653 に答える
0

ご協力いただきありがとうございます。私は問題を見つけましたが、それは(もちろん)私自身の間違いでした!実際の SQL 構文は問題ありませんでした。自分のソフトウェアでエラーが発生しただけです (">=" 文字を置き換えるクリーンアップ関数を介して $query が実行され、クエリが無効になりました)。

お時間を無駄にして申し訳ありません:(

于 2012-11-06T15:13:15.810 に答える