バージョン選択

フォーラム

メニュー

オンライン状況

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

PR

デザインテンプレート EC-CUBE3.0版が登場!
広告掲載について

サイト内検索

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

フロント機能

新規スレッドを追加する

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

マイページに新設した一覧ページにて(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
居住地:
投稿: 866
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
居住地:
投稿: 36
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
居住地:
投稿: 866
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
居住地:
投稿: 36
Re: マイページ内に新設した一覧ページにてのページング機能設定につきまして。
468様

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

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

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


 



ログイン


EC-CUBEペイメント

統計情報

総メンバー数は22,276名です
総投稿数は84,528件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1679
4
yuh
1467
5
red
1104
6
fukap
907
7
468
866
8
shutta
827
9
tsuji
815
10
umebius
814
11 ramrun 789
12
tao_s
651
13 karin 642
14 sumida 638
15
homan
633
16 DELIGHT 571
17
patapata
502
18
flealog
483
19 tonton 436
20
ecbg
387


ネットショップの壺

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

Copyright© LOCKON CO.,LTD. All Rights Reserved.