バージョン選択

フォーラム

メニュー

オンライン状況

48 人のユーザが現在オンラインです。 (13 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 48
もっと...

サイト内検索

 > フロント機能 > 受注履歴の件数取得について

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
KZ0316
投稿日時: 2016/10/25 22:07
対応状況: −−−
新米
登録日: 2016/10/25
居住地:
投稿: 2
受注履歴の件数取得について
マイページの購入履歴一覧のカスタマイズを行っており、その中でどうしても意図した動きにならない箇所があり困っております。

購入履歴一覧を、通常購入とそれとは別の購入方法の2パターンで表示させるため、LC_Page_Mypage.phpにあるlfGetOrderHistory()を流用し、lfGetRegularOrderHistory()という新規functionを開発しました。

以下がそのソースになります。

public function lfGetRegularOrderHistory($customer_id, $startno = -1)
{
$objQuery = SC_Query_Ex::getSingletonInstance();

$col = <<< __EOS__
odr.create_date as create_date,
odr.order_id as order_id,
odr.payment_method as payment_method,
odr.payment_total as payment_total,
rsts.name as status_name,
dtl.regular_id as regular_id
__EOS__;
$table = <<< __EOS__
dtb_order as odr
inner join dtb_order_detail as dtl
on odr.order_id = dtl.order_id
inner join dtb_regular_order as rodr
on dtl.regular_id = rodr.regular_id
inner join mtb_regular_status as rsts
on rodr.status = rsts.id
__EOS__;
$where = 'odr.del_flg = 0 and dtl.regular_id <> 0 and odr.customer_id = ?';
$arrWhereVal = array($customer_id);
$groupby = 'dtl.regular_id';
$order = 'odr.order_id desc';

$objQuery->setGroupBy($groupby);

if ($startno == -1) {
return $objQuery->count($table, $where, $arrWhereVal);
}

$objQuery->setLimitOffset(SEARCH_PMAX, $startno);

$objQuery->setOrder($order);

return $objQuery->select($col, $table, $where, $arrWhereVal);
}


ここで、$objQuery->select の部分は問題なく意図したレコードが取得できているのですが、$objQuery->countの部分で何故か返却値が1の固定となってしまう状況です。

原因が分かる方がおりましたら、是非ご教示頂きたく、宜しくお願い致します。

umebius
投稿日時: 2016/10/26 1:21
対応状況: −−−
登録日: 2016/7/22
居住地: 東京日本橋
投稿: 2085
Re: 受注履歴の件数取得について
登録カテゴリがEC-CUBE3.0になっておりますが、
2系ですよね?
そちらで質問された方がレスはつきやすいです。


----------------
EC-CUBEカスタマイズ 承ります。
【EC-CUBEで開発してみたいエンジニア募集中】

KZ0316
投稿日時: 2016/10/26 9:58
対応状況: 解決済
新米
登録日: 2016/10/25
居住地:
投稿: 2
Re: 受注履歴の件数取得について
アドバイスありがとうございます。
以後、注意します。

本件ですが、以下の方法で自己解決しました。

return $objQuery->count($table, $where, $arrWhereVal);

の記述を

return count($objQuery->select($col, $table, $where, $arrWhereVal));

に変更。

何となくスマートではない気がしますが、意図した件数は取得出来ている様なので、これで対処しようと思います。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン



統計情報

総メンバー数は75,784名です
総投稿数は104,576件です

投稿数ランキング

1
seasoft
7333
2
468
3217
3
AMUAMU
2712
4
nanasess
2212
5
umebius
2085
6
yuh
1664
7
red
1547
8
h_tanaka
1191
9
tsuji
942
10
fukap
907
11
shutta
835
12
tao_s
794
13 ramrun 789
14 karin 689
15 sumida 641
16
homan
633
17 DELIGHT 572
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.