バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > メーカーIDの表示

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
bad
投稿日時: 2016/2/9 11:07
対応状況: 開発中
半人前
登録日: 2016/1/21
居住地:
投稿: 19
メーカーIDの表示
受注管理画面でメーカー検索を出来るようにしたいと考えています。
受注用のindex.tplへ検索用のメーカー欄を追加し表示でき、
次にLC_Page_Admin_Order.php

$this->arrMaker = SC_Helper_DB_Ex::sfGetIDValueList('dtb_maker', 'maker_id', 'name');

$objFormParam->addParam('メーカー', 'search_maker_id', STEXT_LEN, 'n', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK'));
を追記し、
最後にクエリへ
case 'search_maker_id':
$where.= ' AND maker_id = ?';
$arrValues = $objFormParam->getValue($key);
break;
を追記したのですが、検索しようとするとエラーが出てしまいます。
初心者で申し訳ないのですが、どのようにメーカーを取得するのかご教授していただけますでしょうか


karin
投稿日時: 2016/2/9 11:10
対応状況: −−−
仙人
登録日: 2008/9/15
居住地: 東京都
投稿: 689
Re: メーカーIDの表示
bad 様

EC-CUBEのエラーログにはエラー内容が出力されていますか?


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

bad
投稿日時: 2016/2/9 11:18
対応状況: −−−
半人前
登録日: 2016/1/21
居住地:
投稿: 19
Re: メーカーIDの表示
karin様


下記のように表示されています。

Fatal error(E_PARSE): syntax error, unexpected ''search_maker_id'' (T_CONSTANT_ENCAPSED_STRING) on [-/public_html/ec/html/data/class/pages/admin/order/LC_Page_Admin_Order.php(476)]

宜しくお願いいたします。
karin
投稿日時: 2016/2/9 11:34
対応状況: −−−
仙人
登録日: 2008/9/15
居住地: 東京都
投稿: 689
Re: メーカーIDの表示
bad 様


最後にクエリへ
case 'search_maker_id':
$where.= ' AND maker_id = ?';
$arrValues = $objFormParam->getValue($key);
break;
を追記したのですが、検索しようとするとエラーが出てしまいます。


$arrValues = $objFormParam->getValue($key); この部分は


$arrValues[] = $objFormParam->getValue($key);

こうじゃないでしょうか?


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

bad
投稿日時: 2016/2/9 11:50
対応状況: −−−
半人前
登録日: 2016/1/21
居住地:
投稿: 19
Re: メーカーIDの表示
karin 様
失礼いたしました。

$arrValues[] = $objFormParam->getValue($key);

で記述しておりました。

ここを追加するとエラーが出てしまうのでこの部分が間違ってるはずだとは思うのですが、、
親切にお答えいただいているのに解決できなくて申し訳ございません
karin
投稿日時: 2016/2/9 14:27
対応状況: −−−
仙人
登録日: 2008/9/15
居住地: 東京都
投稿: 689
Re: メーカーIDの表示
bad 様

ご確認いただきましてありがとうございます。

ちなみにエラーの出ている下記の行:
LC_Page_Admin_Order.php の 476行目とその前後のコードをこちらへ記載いただくことは可能でしょうか?

何らかの構文エラーだとは思うのですが...。


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

bad
投稿日時: 2016/2/9 14:39
対応状況: −−−
半人前
登録日: 2016/1/21
居住地:
投稿: 19
Re: メーカーIDの表示
karin 様
ご返答ありがとうございます。


念の為クエリ全体を記載させていただきます。
長文になってしまいますがよろしくお願いいたします。

引用:

/**
* クエリを構築する.
*
* 検索条件のキーに応じた WHERE 句と, クエリパラメーターを構築する.
* クエリパラメーターは, SC_FormParam の入力値から取得する.
*
* 構築内容は, 引数の $where 及び $arrValues にそれぞれ追加される.
*
* @param string $key 検索条件のキー
* @param string $where 構築する WHERE 句
* @param array $arrValues 構築するクエリパラメーター
* @param SC_FormParam $objFormParam SC_FormParam インスタンス
* @return void
*/
public function buildQuery($key, &$where, &$arrValues, &$objFormParam)
{
$dbFactory = SC_DB_DBFactory_Ex::getInstance();
switch ($key) {
case 'search_product_name':
$where .= ' AND EXISTS (SELECT 1 FROM dtb_order_detail od WHERE od.order_id = dtb_order.order_id AND od.product_name LIKE ?)';
$arrValues[] = sprintf('%%%s%%', $objFormParam->getValue($key));
break;
case 'search_order_name':
$where .= ' AND ' . $dbFactory->concatColumn(array('order_name01', 'order_name02')) . ' LIKE ?';
$arrValues[] = sprintf('%%%s%%', preg_replace('/[  ]/u', '', $objFormParam->getValue($key)));
break;
case 'search_order_kana':
$where .= ' AND ' . $dbFactory->concatColumn(array('order_kana01', 'order_kana02')) . ' LIKE ?';
$arrValues[] = sprintf('%%%s%%', preg_replace('/[  ]/u', '', $objFormParam->getValue($key)));
break;
case 'search_order_id1':
$where .= ' AND order_id >= ?';
$arrValues[] = sprintf('%d', $objFormParam->getValue($key));
break;
case 'search_order_id2':
$where .= ' AND order_id <= ?';
$arrValues[] = sprintf('%d', $objFormParam->getValue($key));
break;
case 'search_order_sex':
$tmp_where = '';
foreach ($objFormParam->getValue($key) as $element) {
if ($element != '') {
if (SC_Utils_Ex::isBlank($tmp_where)) {
$tmp_where .= ' AND (order_sex = ?';
} else {
$tmp_where .= ' OR order_sex = ?';
}
$arrValues[] = $element;
}
}

if (!SC_Utils_Ex::isBlank($tmp_where)) {
$tmp_where .= ')';
$where .= " $tmp_where ";
}
break;
case 'search_order_tel':
$where .= ' AND (' . $dbFactory->concatColumn(array('order_tel01', 'order_tel02', 'order_tel03')) . ' LIKE ?)';
$arrValues[] = SC_SelectSql_Ex::addSearchStr(preg_replace('/[()-]+/', '', $objFormParam->getValue($key)));
break;
case 'search_order_email':
$where .= ' AND order_email LIKE ?';
$arrValues[] = sprintf('%%%s%%', $objFormParam->getValue($key));
break;
case 'search_payment_id':
$tmp_where = '';
foreach ($objFormParam->getValue($key) as $element) {
if ($element != '') {
if ($tmp_where == '') {
$tmp_where .= ' AND (payment_id = ?';
} else {
$tmp_where .= ' OR payment_id = ?';
}
$arrValues[] = $element;
}
}

if (!SC_Utils_Ex::isBlank($tmp_where)) {
$tmp_where .= ')';
$where .= " $tmp_where ";
}
break;
case 'search_total1':
$where .= ' AND total >= ?';
$arrValues[] = sprintf('%d', $objFormParam->getValue($key));
break;
case 'search_total2':
$where .= ' AND total <= ?';
$arrValues[] = sprintf('%d', $objFormParam->getValue($key));
break;
case 'search_sorderyear':
$date = SC_Utils_Ex::sfGetTimestamp($objFormParam->getValue('search_sorderyear'),
$objFormParam->getValue('search_sordermonth'),
$objFormParam->getValue('search_sorderday'));
$where.= ' AND create_date >= ?';
$arrValues[] = $date;
break;
case 'search_eorderyear':
$date = SC_Utils_Ex::sfGetTimestamp($objFormParam->getValue('search_eorderyear'),
$objFormParam->getValue('search_eordermonth'),
$objFormParam->getValue('search_eorderday'), true);
$where.= ' AND create_date <= ?';
$arrValues[] = $date;
break;
case 'search_supdateyear':
$date = SC_Utils_Ex::sfGetTimestamp($objFormParam->getValue('search_supdateyear'),
$objFormParam->getValue('search_supdatemonth'),
$objFormParam->getValue('search_supdateday'));
$where.= ' AND order_id >= ?';
$arrValues[] = $date;
break;
case 'search_eupdateyear':
$date = SC_Utils_Ex::sfGetTimestamp($objFormParam->getValue('search_eupdateyear'),
$objFormParam->getValue('search_eupdatemonth'),
$objFormParam->getValue('search_eupdateday'), true);
$where.= ' AND order_id <= ?';
$arrValues[] = $date;
break;
case 'search_sbirthyear':
$date = SC_Utils_Ex::sfGetTimestamp($objFormParam->getValue('search_sbirthyear'),
$objFormParam->getValue('search_sbirthmonth'),
$objFormParam->getValue('search_sbirthday'));
$where.= ' AND order_birth >= ?';
$arrValues[] = $date;
break;
case 'search_ebirthyear':
$date = SC_Utils_Ex::sfGetTimestamp($objFormParam->getValue('search_ebirthyear'),
$objFormParam->getValue('search_ebirthmonth'),
$objFormParam->getValue('search_ebirthday'), true);
$where.= ' AND order_birth <= ?';
$arrValues[] = $date;
break;
case 'search_order_status':
$where.= ' AND status = ?';
$arrValues[] = $objFormParam->getValue($key);
break;
      case 'search_maker_id':
      $where.= ' AND maker_id = ?';
       $arrValues[] = $objFormParam->getValue($key);
      break;
default:
break;
}
}



上記の      case 'search_maker_id':
が467行目になります。

お手数おかけして申し訳ございませんm(__)m
karin
投稿日時: 2016/2/9 14:49
対応状況: −−−
仙人
登録日: 2008/9/15
居住地: 東京都
投稿: 689
Re: メーカーIDの表示
bad 様


      case 'search_maker_id':
      $where.= ' AND maker_id = ?';
       $arrValues[] = $objFormParam->getValue($key);
      break;


上記4行すべてのインデントが全角空白になっていますが、これを削除してみてはいかがでしょうか?


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

bad
投稿日時: 2016/2/9 15:00
対応状況: −−−
半人前
登録日: 2016/1/21
居住地:
投稿: 19
Re: メーカーIDの表示
karin 様

ご指摘のように消去したのですが、今度は以下のようなエラーが出てしまいました。。

Fatal error(E_USER_ERROR): DB処理でエラーが発生しました。
SQL: [SELECT COUNT(*) FROM dtb_order WHERE del_flg = 0 AND maker_id = ? ]
MDB2 Error: no such field
_doQuery: [Error message: Could not execute statement]
[Last executed query: PREPARE mdb2_statement_mysql_1049b8b1f67c8ea5a5fc0b7ef01573d6de10389663 FROM 'SELECT COUNT(*) FROM dtb_order WHERE del_flg = 0 AND maker_id = ? ']
[Native code: 1054]
[Native message: Unknown column 'maker_id' in 'where clause']
on [/ec/html/data/class/SC_Query.php(1095)]
/ec/html/admin/order/index.php(29): LC_Page_Admin_Order_Ex->process
/ec/html/data/class_extends/page_extends/admin/order/LC_Page_Admin_Order_Ex.php(54): LC_Page_Admin_Order->process
/ec/html/data/class/pages/admin/order/LC_Page_Admin_Order.php(86): LC_Page_Admin_Order->action
/ec/html/data/class/pages/admin/order/LC_Page_Admin_Order.php(159): LC_Page_Admin_Order->getNumberOfLines
/ec/html/data/class/pages/admin/order/LC_Page_Admin_Order.php(528): SC_Query->count
/ec/html/data/class/SC_Query.php(142): SC_Query->get
/ec/html/data/class/SC_Query.php(683): SC_Query->getOne
/ec/html/data/class/SC_Query.php(699): SC_Query->prepare
/ec/html/data/class/SC_Query.php(1024): SC_Query->error
/ec/html/data/class/SC_Query.php(1095): trigger_error

申し訳ありませんm(__)m
karin
投稿日時: 2016/2/9 15:45
対応状況: −−−
仙人
登録日: 2008/9/15
居住地: 東京都
投稿: 689
Re: メーカーIDの表示
bad 様

先程のエラーは全角空白が原因だったようですね。

今度のエラーはまた別の問題です。

引用:
SQL: [SELECT COUNT(*) FROM dtb_order WHERE del_flg = 0 AND maker_id = ? ] MDB2 Error: no such field


maker_idというカラムはdtb_orderテーブルには存在しない為にエラーになっています。


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

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


 



ログイン


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

統計情報

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

投稿数ランキング

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.