バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 商品管理用のLC_Page_Admin_Products.phpにて各商品毎のproduct_idを取得することに関しまして。

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
zenta
投稿日時: 2018/1/29 7:19
対応状況: −−−
常連
登録日: 2016/10/18
居住地:
投稿: 59
商品管理用のLC_Page_Admin_Products.phpにて各商品毎のproduct_idを取得することに関しまして。
いつも大変お世話になっております。

通常であれば、html側でループさせ、<!--{$arrProducts[cnt].product_id}-->として取得しているものを、当phpファイルにて計算などの処理をさせたいため、各商品毎のproduct_idを取得する必要があり、試しておりますがなかなか機能せず、記述に関しましてご指導など頂けませんでしょうか。

$product_id = xxxxxxxxxx

$objQuery =& SC_Query_Ex::getSingletonInstance();

$this->tpl_rate = $objQuery->getOne('select t_rate from dtb_products where product_id = ? ', array($product_id));

EC-CUBE 2.X系
(データベース) MySQL5.0.77
(WEBサーバ) apache2
(OS) Windows XP
(PHP) 5.0.22
468
投稿日時: 2018/1/29 10:32
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 商品管理用のLC_Page_Admin_Products.phpにて各商品毎のproduct_idを取得することに関しまして。
該当PHPのどの辺りでその情報が必要なのでしょうか?

160行目付近で、$this->arrProducts に1ページ分の商品情報が格納されていると思いますので、
foreach($this->arrProducts as $Product) {
    $product_id = $Product['product_id'];
    
}

のようにループさせればProductIdを取得できるような気がします。


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

zenta
投稿日時: 2018/1/30 10:49
対応状況: −−−
常連
登録日: 2016/10/18
居住地:
投稿: 59
Re: 商品管理用のLC_Page_Admin_Products.phpにて各商品毎のproduct_idを取得することに関しまして。
468様、

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

商品管理>商品マスターの一覧で各商品毎にその商品にまつわる数字を表示させたいと考えております。その数字は最初のスレッドの記述からさらに、当PHP上で簡単な計算を施し、サイト上にアップされた時点で各商品毎別々に表示させたいと考えているものです。

それらの目的を達成できるのであれば、当PHPファイルでのproduct_id取得の具体的な箇所はどこでもよろしいと考えております。

頂きました記述にて試しましたところ(上述の事後的な簡単な計算なしの状態)、一覧ページの一番最後にある商品の数字を抽出し、サイト上ではその数字が全ての商品にて表示されております。

ですので、数字は引いてきているものの、おそらくforeachのどこかが当目的に完全にフィットしていないため、各商品ごとにそれぞれ別々の表示ができていないのかと考え、更に試しておりますが、何かお分かりになりますでしょうか。
yuh
投稿日時: 2018/1/30 17:35
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 商品管理用のLC_Page_Admin_Products.phpにて各商品毎のproduct_idを取得することに関しまして。
dtb_productsの追加したt_rateのカラムを取得であれば、元の取得してくる部分にt_rateを追加した方が楽で速いと思います。


----------------


http://ec-lab.net/

468
投稿日時: 2018/1/30 21:20
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 商品管理用のLC_Page_Admin_Products.phpにて各商品毎のproduct_idを取得することに関しまして。
PHPからテンプレートに値を渡す方法に問題があるような気がします。

$this->tpl_rate = *******

上記のような記述をした場合、ループの中で次々と$this->tpl_rateが上書きされますので、
最終ループのデータしかテンプレート側で参照できないと思います。

$arr = array();
foreach($this->arrProducts as $Product) {
    $product_id = $Product['product_id'];
    
    ~ 色々な計算処理 ~

    $arr[$product_id] = $req; //結果を格納
}

$this->tpl_rate = $arr;

各商品毎の計算結果を配列でテンプレートに渡す必要があると思います。

テンプレート側では商品を表示するループの中で
<!--{$tpl_rate[$id]}-->
のような記述で参照できるのではないかと思います。

計算後の値が既にテーブルに格納されているのであれば、
yuhさんのおっしゃられる方法が楽かと思います。


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

zenta
投稿日時: 2018/2/1 4:57
対応状況: 解決済
常連
登録日: 2016/10/18
居住地:
投稿: 59
Re: 商品管理用のLC_Page_Admin_Products.phpにて各商品毎のproduct_idを取得することに関しまして。
yuh様、468様、

いつもお世話になっております。そしてご指導いただきまして感謝致します。

Php側での処理は複雑になるようですので、mysqlの関数にて計算させ、そしてdtb_productsに新設したカラムに代入し、sc_product.phpを経由することで、サイト側では個々の商品毎に計算結果が表示されているようでございます。

まだ計算内容など、あるいはmysql側での設定などの確認作業などが終了しておりませんが、ご指導を受け方向性を確認できたことに対して本当に感謝致します。 ご多忙の中ありがとうございます。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
追記

その後、様々な方々のご指導の下、以下の様なmysqlのトリガーを使用する記述になりました。
とりあえず、各々の仕様によって変わってくると思いますが、php側で記述しようとしていたproduct_idの取得は以下の様な感じで機能しているようでございます。

CREATE TRIGGER `rate` AFTER UPDATE ON `dtb_products`
FOR EACH ROW BEGIN
IF NEW.update_data <> OLD.update_data THEN
UPDATE
dtb_product_rate t1,
( SELECT dtb_products.product_id, (rate * number) AS prt
FROM dtb_products left join dtb_products_rate on dtb_products.product_id = dtb_products_rate.product_id GROUP BY product_id
) t2
SET
t1.option = t2.prt
WHERE
t1.product_id = t2.product_id
END IF;
END
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1291
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
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.