News ニュース

会員別集計を実行するとシステムエラーがでる

売り上げ集計の会員別集計と職業別集計でのバグ

環境:eccube 2.3.3+apache2.2+MySQL 5.0.75+PHP5.2.6+Linux(ubuntu)

状況:会員別集計を実行するとシステムエラーがでる

SELECT COUNT(*) AS order_count, SUM(total) AS total, TRUNCATEATE((AVG(total)) AS total_average, order_sex FROM dtb_order WHERE create_date >= ’2009/1/1 00:00:00′ AND create_date < date('2009/02/01') AND customer_id <> 0 AND del_flg = 0 AND status <> 3 GROUP BY order_sex [nativecode=1064 ** You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'total_average, order_sex FROM dtb_order WHERE create_date >= '2009/1/1 00:00:00' at line 1]

原因:TRUNCATEATE((AVG(total))となっており構文エラー 正しくは→TRUNCATE(AVG(total),0)となります。

対応方法

SC_Query->selectの94行目削除
// $sqlse = $dbFactory->sfChangeMySQL($sqlse);

LC_Page_Admin_Total->lfGetOrderMemberの641行目
trunc(AVG(total))→trunc(AVG(total),0)に変更

次に職業別集計のバグ対処

LC_Page_Admin_Total->lfGetOrderMemberの711行目
trunc(AVG(total))→trunc(AVG(total),0)に変更

年代別集計のバグ対処

Warning: ereg_replace() [function.ereg-replace]: REG_BADRPT in /home/data/class/pages/admin/total/LC_Page_Admin_Total.php on line 552のエラーが出た場合。

data/class/pages/admin/total/LC_Page_Admin_Total.php

の552行目

$arrKey[] = ereg_replace(“?”, “-”, $val);

$arrKey[] = ereg_replace(“~”, “-”, $val);

に変更します。

この記事を書いた人

Satoru Kawamura2013年、株式会社ハーモニクスデザイン創業。パソコンとは「お友達」です(笑)
音楽を作ること、犬と遊ぶこと、身体を動かすことが大好きで、毎週スポーツイベントを企画しています。
様々なスポーツで交流の場を広げ、人脈作りのお手伝いをしつつ、みんなの「笑顔」を見ることが幸せです!!