バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > ユーザーがレビューを投稿する際に、Dtb_reviewに新設したreview2_idというカラムに、レビューしようとしている商品が所有しているデータを挿入する方法をご教授いただけませんでしょうか。

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
zenta
投稿日時: 2017/1/25 0:42
対応状況: −−−
常連
登録日: 2016/10/18
居住地:
投稿: 59
ユーザーがレビューを投稿する際に、Dtb_reviewに新設したreview2_idというカラムに、レビューしようとしている商品が所有しているデータを挿入する方法をご教授いただけませんでしょうか。
いつもお世話になっております。どうかアドバイスを頂けませんでしょうか。

レビュー投稿機能で諸事情により、LC_Page_Products_Review.phpのlfRegistRecommendDataにある登録機能を利用し、Dtb_reviewに新規作成したreview2_idというカラムに、レビューしようとしている商品が所有している、こちらもdtb_productsに新規作成したc_idのデータを挿入しなければいけません。

(理由は話が複雑になり、かつ混乱いたしますので割愛) どのような方法で、それを実現できるか、最適な方法などご教授いただけませんでしょうか。

試した方法は以下になりますが、エラーはでないものの、データを挿入することができません。

Php側
function action() {
//cn_idの取得
$this->c_id = $this->lfGetCnID($this->arrForm['c_id']);
}

function lfGetCnID ($product_id) {
$objQuery =& SC_Query_Ex::getSingletonInstance();
return $objQuery->get('c_id', 'dtb_products', 'product_id = ? AND del_flg = 0 AND status = 1', array($product_id));
}

//登録実行
function lfRegistRecommendData(&$objFormParam , $arrList) {
$objQuery =& SC_Query_Ex::getSingletonInstance();
$objDb = new SC_Helper_DB_Ex();
// 配列の添字を定義
$arrRegist['review2_id'] = $c_id;

//-- 登録実行
$objQuery->begin();
$arrRegist['review_id'] = $objQuery->nextVal('dtb_review_review_id');
$objQuery->insert('dtb_review', $arrRegist);
$objQuery->commit();
}

Smarty側
<form name="form1" id="form1" method="get" action="?">
<input type="hidden" name="review2_id" value="<!--{$c_id|h}-->"
</form>



EC-CUBE:2.12.5
PHP: 5.2.9
サーバー: Apache2.2.3
データベース: MySQL 5.0
tao_s
投稿日時: 2017/1/25 1:30
対応状況: −−−
仙人
登録日: 2008/8/20
居住地: 東京
投稿: 799
Re: ユーザーがレビューを投稿する際に、Dtb_reviewに新設したreview2_idというカラムに、レビューしようとしている商品が所有しているデータを挿入する方法をご教授いただけませんでしょうか。
lfGetCnID()はproduct_idからc_idを取得するものの様ですが、抽出条件でc_idを与えていませんか?
あと、取得した値を$this->c_idに入れてるのにlfRegistRecommendData()ではいきなり$c_idとして使用しようとしてたりと、基本的なケアレスミスっぽいのが見当たります。

だいぶ疲れが見えるコードなので、一旦ぐっすり寝て頭をすっきりさせてからもう一度見直してみてはいかがでしょうか?


----------------
EC-CUBEカスタマイズ相談してください。
緊急のEC-CUBEの障害対応
EC-CUBEカスタマイズブログ

zenta
投稿日時: 2017/1/28 15:12
対応状況: −−−
常連
登録日: 2016/10/18
居住地:
投稿: 59
Re: ユーザーがレビューを投稿する際に、Dtb_reviewに新設したreview2_idというカラムに、レビューしようとしている商品が所有しているデータを挿入する方法をご教授いただけませんでしょうか。
tao_s様
ややこしい質問に対してご教授いただきまして感謝いたします。
いろいろと試して、レビュー登録の確認ページでそのc_idの番号を表示させているのですが、それをどのようにしてdbに挿入するかで戸惑っております。 以下は試した記述ですが、前回同様にエラーは出ないもののデータを挿入できません。

このようなケースの場合どうすべきかお分かりになりませんでしょうか。(確認ページに同様に表示される商品名、product_id、review_name, recommend_levelそしてreview_idはdbに挿入されます。)

function lfRegistRecommendData(&$objFormParam,$arrList) {

$objQuery =& SC_Query_Ex::getSingletonInstance();
$arrRegist = $objFormParam->getDbArray();

$checkArray = array('c_id');
$arrList = SC_Utils_Ex::arrayDefineIndexes($arrList, $checkArray);

$arrRegist['create_date'] = 'CURRENT_TIMESTAMP';
$arrRegist['update_date'] = 'CURRENT_TIMESTAMP';
$arrRegist['creator_id'] = '0';
$arrRegist['review2_id'] = $arrList['c_id'];

//-- 登録実行
$objQuery->begin();
$arrRegist['review_id'] = $objQuery->nextVal('dtb_review_review_id');
$objQuery->insert('dtb_review', $arrRegist);
$objQuery->commit();

}
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1644
8
red
1570
9
mcontact
1289
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.