バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

フロント機能

新規スレッドを追加する

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

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

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

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

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


 



ログイン


EC-CUBEペイメント

統計情報

総メンバー数は33,286名です
総投稿数は87,798件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1796
4
yuh
1515
5
468
1275
6
red
1178
7
umebius
1007
8
fukap
907
9
shutta
827
10
tsuji
815
11 ramrun 789
12
tao_s
665
13 karin 656
14 sumida 641
15
homan
633
16
h_tanaka
572
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

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

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