バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > マイページ内に新設した一覧ページにてのページング機能設定につきまして。

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
zenta
投稿日時: 2018/2/6 1:47
対応状況: −−−
常連
登録日: 2016/10/18
居住地:
投稿: 59
マイページ内に新設した一覧ページにてのページング機能設定につきまして。
いつも大変お世話になっております。どうかご指導お願い申し上げます。

マイページに新設した一覧ページにて(1 2 3 次へ>>)の様に表示されるページングの機能を付加する必要があるため、それ用に新たに作成したテーブルから、当一覧ページを抽出する条件と同じ条件の基、ページング用の行数のカウントをしなければなりません。

そのため以下の様な記述を設定致しましたが、以下のwhere句、group句が全く機能していない様で、その新設テーブル内の全行数をカウントし、ページング機能に反映させてしまいます。

どこに問題があるかご指摘、アドバイス等頂けませんでしょうか。

*新設一覧ページ内のページング機能箇所
<!--{$tpl_strnavi}-->

*そのphpファイル内
$linemax = $objProduct->findProductCount($objQuery, $arrWhereVal);

*sc_product.php内
function findProductCount(&$objQuery, $arrVal = array()) {

$table = <<< __EOS__
dtb_product_tran AS trn

__EOS__;
$where = $_SESSION['member_id'].'= trn.creator_id';
$group = 'GROUP BY trn.product_id';

return $objQuery->count($table, '', $where, $group, $arrVal);
}
468
投稿日時: 2018/2/6 19:05
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: マイページ内に新設した一覧ページにてのページング機能設定につきまして。
$objQuery->count($table, '', $where, $group, $arrVal); を呼び出されていますが、
/data/class/SC_Query.php の中は変更を加えられていますか?

デフォルトの記述では下記のようになっていて、
group byに対応していないように思えるのですが・・・。
public function count($table, $where = '', $arrWhereVal = array())
{
    return $this->get('COUNT(*)', $table, $where, $arrWhereVal);
}




----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

zenta
投稿日時: 2018/2/7 23:36
対応状況: −−−
常連
登録日: 2016/10/18
居住地:
投稿: 59
Re: マイページ内に新設した一覧ページにてのページング機能設定につきまして。
468様、

ご指導いただきまして感謝いたします。

sc_query.phpは全く調整していませんでしたので、とりあえず以下の様にいたしましたが、期待する結果に至っておりません。
まず、groupbyにおける$arrWhereValに相当するものをどのように設定してよいのか分かりませんでした。

sc_query.php
function count($table, $where = '', $arrWhereVal = array(), $groupby = '') {
return $this->get('COUNT(*)', $table, $where, $arrWhereVal, $groupby);
}

次に、以下に関して、$whereの記述自体は正しいと考えているのですが、$where自体が全く読まれておりませんので、__EOS__;の位置、$objQuery->count(XXXX)の中身の内容などあれこれと試しえておりますが、何かご指摘など頂けませんでしょうか。

function findProductCount(&$objQuery, $arrVal = array()) {

$table = <<< __EOS__
dtb_product_tran AS trn
__EOS__;
$where = $_SESSION['member_id'].'= trn.creator_id';
$groupby = 'trn.product_id';

return $objQuery->count($table, '', $where, $arrVal, $groupby);
}
468
投稿日時: 2018/2/8 10:18
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: マイページ内に新設した一覧ページにてのページング機能設定につきまして。
group byの指定の仕方ですが、
$objQuery->count()を実行する前に

$objQuery->setGroupBy('trn.product_id');

を実行すれば、発行されるSELECT文にgroup byが付与されます。

あと、Where句の件ですが、count()に渡す引数が誤っていると思います。

return $objQuery->count($table, '', $where, $arrVal, $groupby);

return $objQuery->count($table, $where, $arrVal);
第2引数の''は不要かと思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

zenta
投稿日時: 2018/2/12 17:46
対応状況: 解決済
常連
登録日: 2016/10/18
居住地:
投稿: 59
Re: マイページ内に新設した一覧ページにてのページング機能設定につきまして。
468様

ご多忙の中、詳細にご指導いただき、感謝の限りでございます。

新設テーブルのデータ量が多い上、連結、整合性のチェックなど、確認項目が非常に多く、新設テーブル用のphpファイル、sc_product.php、sc_query.phpの内容を確認しながら、いろいろと試していこうと思います。

使用すべきファイル、記述箇所などのご指摘、本当に感謝致します。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,288名です
総投稿数は109,688件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

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