質問 > フロント機能 > 商品管理用の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ページ分の商品情報が格納されていると思いますので、
のようにループさせればProductIdを取得できるような気がします。
|
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を追加した方が楽で速いと思います。
|
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が上書きされますので、 最終ループのデータしかテンプレート側で参照できないと思います。
各商品毎の計算結果を配列でテンプレートに渡す必要があると思います。 テンプレート側では商品を表示するループの中で <!--{$tpl_rate[$id]}--> のような記述で参照できるのではないかと思います。 計算後の値が既にテーブルに格納されているのであれば、 yuhさんのおっしゃられる方法が楽かと思います。
|
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 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |