バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 商品登録画面での割引金額の計算表示

フロント機能

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
aozora
投稿日時: 2013/3/28 1:18
対応状況: −−−
常連
登録日: 2013/3/21
居住地:
投稿: 40
Re: 商品登録画面での割引金額の計算表示
yuh様、sumida様、

貴重なご意見、そしてご教授を頂きまして感謝いたします。

ご指摘の手法など、あらゆる方法をためしておりますが未だに解決に至っておらず、よって継続的に解決策を探っております。しかしながらもう少しのところまできている感はあります。

頑張ってみます。ありがとうございます。
sumida
投稿日時: 2013/3/26 22:55
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
Re: 商品登録画面での割引金額の計算表示
思いつきですが、
LC_Page_Admin_Products_Product.phpで、
$objFormParam->addParam()を使って、他の変数と同様にrate1を定義し、その変数を使えば良いように思います。

$arrForm['rate1'] = $rate1[0];

が、後々、商品の変更等でも使用する可能性があるのなら、
割引率あるいは割引率番号を商品情報のテーブル内に保存するのもありかなと。
yuh
投稿日時: 2013/3/26 20:47
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1612
Re: 商品登録画面での割引金額の計算表示
$rate1 = 〜〜〜〜〜〜
の部分を$this->rate1 = 〜〜〜〜
に変更して
<!--{$rate1|h}-->
でどうでしょう?

読み出す部分でデータをテンプレ側に渡してないような気がします。
aozora
投稿日時: 2013/3/26 18:23
対応状況: −−−
常連
登録日: 2013/3/21
居住地:
投稿: 40
Re: 商品登録画面での割引金額の計算表示
yuh様、皆様、

ご連絡頂きましてありがとうございます。

申し訳ございません。

コピーし、貼り付けた後に
<!--{$arrForm.price02|h}-->を<!--{$arrForm.rate1|h}-->へ変更しても割引率が表示されません。の間違いです。
yuh
投稿日時: 2013/3/26 18:11
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1612
Re: 商品登録画面での割引金額の計算表示
<!--{$arrErr.rate1}-->って基本$arrErrはエラー関係を入れるのでそこが間違ってないですか?
aozora
投稿日時: 2013/3/26 17:37
対応状況: −−−
常連
登録日: 2013/3/21
居住地:
投稿: 40
Re: 商品登録画面での割引金額の計算表示
Fukap様、Sumida様、

表示されました。すごいです。これは有識者でなければ分かりません。
さすがでございます。ご丁寧にご対応頂きましてありがとうございます。


今もう一つ直面しており、もしすぐ分かるのであればご教授ねがいます。

表示された各々の割引価格の横に各々の割引率である$rate1, $rate2, $rate3・・を表示させたいと思いadmin/product/product.tpl内に販売価格の部分を丸ごとコピー、貼り付けし、<!--{$arrErr.price02}-->を<!--{$arrErr.rate1}-->と変更し、試しているのですが表示されません。どこに問題がありますでしょうか。
fukap
投稿日時: 2013/3/26 14:40
対応状況: −−−
仙人
登録日: 2009/7/7
居住地: 滋賀県
投稿: 907
Re: 商品登録画面での割引金額の計算表示
getColメソッドの返り値が配列であれば、以下のような感じでいけませんかね?

$sqlval['creator_id'] = strlen($_SESSION['member_id']) >= 1 ? $_SESSION['member_id'] : '0';

// 以下の記述を追加
$rate1 = $objQuery->getCol('discount_price1', 'dtb_discount', 'discount_id = ?', array('1'));
$rate2 = $objQuery->getCol('discount_price2', 'dtb_discount', 'discount_id = ?', array('2'));
$sqlval['discount_price1'] = $sqlval['price02'] * $rate1[0];
$sqlval['discount_price2'] = $sqlval['price02'] * $rate2[0];

if (strlen($sqlval['product_class_id']) == 0) {
aozora
投稿日時: 2013/3/25 15:25
対応状況: −−−
常連
登録日: 2013/3/21
居住地:
投稿: 40
Re: 商品登録画面での割引金額の計算表示
Sumida様、Fukap様、

ご返信頂きましてありがとうございます。

data/class/SC_Query.phpは以下の様になっているということですね。
/**
* SELECT 文の実行結果を 1列のみ取得する.
*
* @param string $table テーブル名
* @param string $col カラム名
* @param string $where 付与する WHERE 句
* @param array $arrWhereVal プレースホルダに挿入する値
* @return array SQL の実行結果の配列
*/
function getCol($col, $table = '', $where = '', $arrWhereVal = array()) {
$sql = $this->getSql($col, $table, $where, $arrWhereVal);
$sql = $this->dbFactory->sfChangeMySQL($sql);

$sth =& $this->prepare($sql);
if (PEAR::isError($sth) && $this->force_run) {
return;
}

ということは、テーブルdtb_discountからwhereがdiscount_id=1のカラムrateを$rate1に挿入するには以下をどう記述したらよいでしょうか。

$rate1 = $objQuery->getCol('rate', 'dtb_discount', 'discount_id = ?', array('1'));

ありとあらゆることを試しておりますが、エラーがでます。何かご教授お願い致します。
sumida
投稿日時: 2013/3/24 18:22
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
Re: 商品登録画面での割引金額の計算表示
$rate1 = $objQuery->getCol('rate', 'dtb_discount', 'discount_id = ?', array('1'));
の戻り値は、
data/class/SC_Query.phpの関数getColによれば、

/**
* SELECT 文の実行結果を 1列のみ取得する.
*
* @param string $table テーブル名
* @param string $col カラム名
* @param string $where 付与する WHERE 句
* @param array $arrWhereVal プレースホルダに挿入する値
* @return array SQL の実行結果の配列
*/

という事で、戻り値がarrayになっているのでは?
aozora
投稿日時: 2013/3/24 17:20
対応状況: −−−
常連
登録日: 2013/3/21
居住地:
投稿: 40
Re: 商品登録画面での割引金額の計算表示
Fukap様

ご教授いただきありがとうございます。
流れがわかりました。

ご教授どおり以下のように試しました。getCol(内のrateはdtb_discountで割引率を入力したフィールド名(カラム名)です。

$rate1 = $objQuery->getCol('rate', 'dtb_discount', 'discount_id = ?', array('1'));
$sqlval['discount_price1'] = $sqlval['price02'] * $rate1;

結果は、Unsupported operand types on・・(1307)というエラーが表示されました。
$rate1 = $objQuery->getCol( の行が1307に当たります。

以下を試みましたら、エラーもでず、割引金額がDBに格納され、商品登録画面にも表示されました。

$rate1 = 0.03;
$sqlval['discount_price1'] = $sqlval['price02'] * $rate1;

よって、以下の記述で$rate1に値(設定した割引率)が入っていないのかなと思っております。

$rate1 = $objQuery->getCol('rate', 'dtb_discount', 'discount_id = ?', array('1'));

()内の’を“に変更したり、ご指摘の通りrateをdiscount_price1としたり、array('1')をarray('discount_id')としたり、またはarray('discount_id' =='1')としたり、’rate’と’dtb_discount’の順序を逆にしたりと試しましておりますが、同じ結果になります。

どうしたら宜しいかご教授いただけませんでしょうか。
(1) 2 »
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は64,462名です
総投稿数は97,263件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
468
2494
4
nanasess
2089
5
umebius
1650
6
yuh
1612
7
red
1411
8
h_tanaka
1029
9
fukap
907
10
tsuji
863
11
shutta
835
12
tao_s
792
13 ramrun 789
14 karin 657
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

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

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