バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 受注管理画面に商品名を記載する方法について

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ricarica
投稿日時: 2011/10/3 14:23
対応状況: −−−
常連
登録日: 2011/8/22
居住地:
投稿: 48
受注管理画面に商品名を記載する方法について
いつもお世話になってます。

受注管理の検索後の検索結果一覧に

商品名を表記したいのです。

tplファイルでは、商品名の項目を追加スミ

そして、変数 $arrResult の内容を見たのですが、商品名(prduct_name)が入っていないのですが、

どのように記述すればよろしいのでしょうか?

旧バージョンのCSV出力に項目追加のスレを見たのですが、

dtb_data の同一テーブル内に無ければ表記が難しいとあったのですが、ver2.11.1も同じなのでしょうか?

おわかりになる方、教えてください。

どうぞ宜しくお願いします。





=============仕様===============================
EC-CUBE     2.11.1
PHP Version   5.3.5
データベース  MySQL 5.5.8
WEBサーバ    Apache
================================================
yukikaze
投稿日時: 2011/10/3 15:45
対応状況: −−−
長老
登録日: 2011/7/26
居住地:
投稿: 196
Re: 受注管理画面に商品名を記載する方法について
tplに項目は追加したけど、そのデータがない…といぅことで、いいでしょうか?

LC_Page_Admin_Order.php の findOrders[Function] を修正する必要があると思います。

return $objQuery->select('*', 'dtb_order', $where, $arrValues);
 ↓
return $objQuery->select('dtb_order.*, dtb_order_detail.product_name', 'dtb_order INNER JOIN dtb_order_detail USING (order_id)', $where, $arrValues);

これで $arrResult に 商品名(prduct_name)が入ってきます。
ricarica
投稿日時: 2011/10/3 16:16
対応状況: 解決済
常連
登録日: 2011/8/22
居住地:
投稿: 48
Re: 受注管理画面に商品名を記載する方法について
ありがとうございます。
(;; 感謝です。

おっしゃるとおりになりました。
ありがとうございます。
ricarica
投稿日時: 2011/10/3 17:18
対応状況: −−−
常連
登録日: 2011/8/22
居住地:
投稿: 48
Re: 受注管理画面に商品名を記載する方法について
すみません。先ほどはありがとうございました。

そこで、もうひとつだけご教授いただきたいのですが、お願いします。

先ほどの INNER JOIN で、テーブルをつなぐ方法だと思うのですが、3つをつなぐ場合、以下のようにした場合

return $objQuery->select('dtb_order.*, dtb_order_detail.product_name, eccube_db.*','dtb_order INNER JOIN "'dtb_order INNER JOIN eccube_db USING (order_id)', $where, $arrValues" 'dtb_order_detail USING (order_id)', $where, $arrValues);

どこがおかしいのでしょうか?どうぞ教えてください。

宜しくお願いします。

yukikaze
投稿日時: 2011/10/3 17:35
対応状況: −−−
長老
登録日: 2011/7/26
居住地:
投稿: 196
Re: 受注管理画面に商品名を記載する方法について
FROM部分が…(^^;
引用:

return $objQuery->select('dtb_order.*, dtb_order_detail.product_name, eccube_db.*','dtb_order INNER JOIN "'dtb_order INNER JOIN eccube_db USING (order_id)', $where, $arrValues" 'dtb_order_detail USING (order_id)', $where, $arrValues);


FROM部分が…(汗

'dtb_order INNER JOIN "'dtb_order INNER JOIN eccube_db USING (order_id)', $where, $arrValues" 'dtb_order_detail USING (order_id)'

まず、使用したいテーブルは次の3つですね。
 dtb_order
 dtb_order_detail
 eccube_db
そして、それぞれを繋ぐKeyは order_id ですね。
であれば、FROM部分を
 'dtb_order INNER JOIN dtb_order_detail USING (order_id) INNER JOIN eccube_db USING (order_id)'
で。
Keyが異なるのであれば、
 'dtb_order INNER JOIN dtb_order_detail USING (order_id) INNER JOIN eccube_db ON dtb_order_detail.dtb_order_detail = eccube_db.xxxx'
という感じで。
ちなみに INNER JOIN ですので、双方が連結することを前提にしています。
eccube_db 側に情報が欠落することがあるのであれば、 LEFT JOIN を使ってみて下さい。

助言になりましたでしょうか?
ricarica
投稿日時: 2011/10/3 17:59
対応状況: −−−
常連
登録日: 2011/8/22
居住地:
投稿: 48
Re: 受注管理画面に商品名を記載する方法について
何度もありがとうございます。

テーブル3個で
KEYは order_id です。

FROM部分ということで、教えていただいたとおり?
のはずなのですが、ならないのです。

return $objQuery->select('dtb_order.*, dtb_order_detail.product_name, eccube_db.*', 'dtb_order INNER JOIN dtb_order_detail USING (order_id) LEFT JOIN eccube_db USING (order_id)', $where, $arrValues);

そして、eccube_dbは、順序がバラけてますので、 LEFT JOIN を使いました。

どこがおかしいのでしょうか?

お手数おかけしますがお願いします。



ricarica
投稿日時: 2011/10/3 18:12
対応状況: −−−
常連
登録日: 2011/8/22
居住地:
投稿: 48
Re: 受注管理画面に商品名を記載する方法について
すみません。
なりました。(。。;

書き足しながら記述していた為、全角スペースが入ってたようです。 削除したらできました。

ありがとうございます。

かなり勉強になりました。
yukikaze
投稿日時: 2011/10/4 9:14
対応状況: −−−
長老
登録日: 2011/7/26
居住地:
投稿: 196
Re: 受注管理画面に商品名を記載する方法について
解決しているので、余談です。
個人的に…ですが、複数のテーブルを扱う場合、「$objQuery->select」よりも「$objQuery->getAll」の方が見やすいと思います。
ヒアドキュメント使ってSQLを見易く記載。
条件だけ、外だしする。
----- ここから -----
$sql = <<< EOF
SELECT
dtb_order.*,
dtb_order_detail.product_name,
eccube_db.*
FROM
dtb_order
INNER JOIN dtb_order_detail USING (order_id)
LEFT JOIN eccube_db USING (order_id)
WHERE
{$where}
;
EOF;
return $objQuery->getAll($sql, $arrValues);
----- ここまで -----
$sql内の{$where}を変数ではなく、直書きの方見やすいです。
SQLの動作確認を行う上でも便利です。

EC-CUBE的に推奨しているかは分かりませんが…あくまでも個人的に…です。
markun
投稿日時: 2012/4/19 16:09
対応状況: −−−
新米
登録日: 2012/4/9
居住地:
投稿: 4
Re: 受注管理画面に商品名を記載する方法について
はじめまして。

現在社内購買サイトを構築中の初心者でございます。

こちらの記述を利用させて頂きまして、受注管理画面の商品表示はできました。

どなたか教えて頂きたいのですが、この記述ですと対応状況を変更しますと、同じ注文番号の他の商品の対応状況も変わってしまいます。
対応状況を分ける方法と記述を教えて頂けますと助かります。

よろしくお願いします。


---------------------------------
EC-CUBE 2.11.4
DBサーバー MySQL 5.5.15-log
WEBサーバー Apache/1.3.42 (Unix)
PHP 5.2.17


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


 



ログイン


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

統計情報

総メンバー数は88,894名です
総投稿数は110,002件です

投稿数ランキング

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
1295
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.