質問 > フロント機能 > 商品検索フォームで商品コードで検索できるようにしたい。 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
h6295as |
投稿日時: 2014/6/24 1:04
対応状況: −−−
|
新米 登録日: 2014/6/23 居住地: 投稿: 6 |
商品検索フォームで商品コードで検索できるようにしたい。 現在2.13.1にてXAMPPを用いて構築中なのですが、商品検索から商品コードや商品情報の任意の項目で検索する方法がわかりません。
既出のものだとバージョンが以前のもののため、指定のページにそもそもその記述がなかったり、エラーが出てしまったりしております。 2.13.1にて、商品コードや任意に項目で検索ができるようにするにはどのようにしたらよいでしょうか? 当方、プログラマではありませんので、具体的にご教示いただけると幸いです。 よろしくお願いいたします。 ***************************** バージョン:2.13.1 PHP 5.3.1 DBバージョン:MySQL 5.1.44 ****************************** |
tsuji |
投稿日時: 2014/6/24 9:42
対応状況: −−−
|
仙人 登録日: 2013/11/19 居住地: 投稿: 958 |
Re: 商品検索フォームで商品コードで検索できるようにしたい。 h6295as 様
具体的ではありませんが、検索ブロックは商品一覧にデータを渡して 検索処理を行っています。 ですので、検索ブロックに検索したい項目を追加し、商品一覧で その項目が送られてきたら、その項目を検索条件に加えて商品の 取得を行うことになると思います。 ほかにもプラグインを探してみるという手もあると思います。 調べてみると下記のようなプラグインもありました。 http://www.ec-cube.net/products/detail.php?product_id=460 |
h6295as |
投稿日時: 2014/6/25 2:04
対応状況: −−−
|
新米 登録日: 2014/6/23 居住地: 投稿: 6 |
Re: 商品検索フォームで商品コードで検索できるようにしたい。 tsuji様
ご回答ありがとうございます。 いろいろ試しておりますが、なかなかうまくいきません。 現状は data/class/pages/products/LC_Page_Products_List.phpに // 分割したキーワードを一つずつwhere文に追加 foreach ($names as $val) { if (strlen($val) > 0) { $searchCondition['where'] .= ' AND ( alldtl.name ILIKE ? OR alldtl.comment3 ILIKE ? OR alldtl.product_code ILIKE ?) '; $searchCondition['arrval'][] = "%$val%"; $searchCondition['arrval'][] = "%$val%"; $searchCondition['arrval'][] = "%$val%"; } } を記述しアップロードいたしました。 そうしますと Fatal error(E_USER_ERROR): DB処理でエラーが発生しました。 SQL: [SELECT COUNT(*) FROM dtb_products AS alldtl WHERE alldtl.del_flg = 0 AND alldtl.status = 1 AND ( alldtl.name LIKE ? OR alldtl.comment3 LIKE ? OR alldtl.product_code LIKE ?) ] MDB2 Error: no such field _doQuery: [Error message: Could not execute statement] [Last executed query: PREPARE mdb2_statement_mysql_12168d99915ed80bd056717547827ace5e1afacd35 FROM 'SELECT COUNT(*) FROM dtb_products AS alldtl WHERE alldtl.del_flg = 0 AND alldtl.status = 1 AND ( alldtl.name LIKE ? OR alldtl.comment3 LIKE ? OR alldtl.product_code LIKE ?) '] [Native code: 1054] [Native message: Unknown column 'alldtl.product_code' in 'where clause'] on [/virtual/203.138.30.8/data/eccube/class/SC_Query.php(1087)] /virtual/203.138.30.8/home/eccube/products/list.php(29): LC_Page_Products_List_Ex->process /virtual/203.138.30.8/data/eccube/class_extends/page_extends/products/LC_Page_Products_List_Ex.php(54): LC_Page_Products_List->process /virtual/203.138.30.8/data/eccube/class/pages/products/LC_Page_Products_List.php(83): LC_Page_Products_List->action /virtual/203.138.30.8/data/eccube/class/pages/products/LC_Page_Products_List.php(137): LC_Page_Products_List->lfGetProductAllNum /virtual/203.138.30.8/data/eccube/class/pages/products/LC_Page_Products_List.php(363): SC_Product->findProductCount /virtual/203.138.30.8/data/eccube/class/SC_Product.php(114): SC_Query->count /virtual/203.138.30.8/data/eccube/class/SC_Query.php(142): SC_Query->get /virtual/203.138.30.8/data/eccube/class/SC_Query.php(675): SC_Query->getOne /virtual/203.138.30.8/data/eccube/class/SC_Query.php(691): SC_Query->prepare /virtual/203.138.30.8/data/eccube/class/SC_Query.php(1016): SC_Query->error /virtual/203.138.30.8/data/eccube/class/SC_Query.php(1087): trigger_error ▲▲▲ デバッグ情報ここまで ▲▲▲ 上記のようなエラーが発生いたしました。 このエラーも読み解く事ができず、困っております。 何となく「alldtl.product_codeというカラムがないよ」と言っているような感じがいたしますが、合っているかどうか分かりませんし、これを修正する方法も分かりません。 どうかご教示いただけますでしょうか? よろしくお願いいたします。 |
tsuji |
投稿日時: 2014/6/25 9:15
対応状況: −−−
|
仙人 登録日: 2013/11/19 居住地: 投稿: 958 |
Re: 商品検索フォームで商品コードで検索できるようにしたい。 h6295as 様
alldtlはSC_Product.phpにあるalldtlSQLで生成されるSQLですね。 ここにはproduct_codeはないようです。 そして、ここに商品コードの検索を加えられるように改修をかける のは現実的ではないように思っています。 それで、別途dtb_products_classからproduct_codeを検索条件にproduct_idを取得してalldtlの検索条件にIN句で加える、という操作 をしてみてはいかがでしょうか?
|
h6295as |
投稿日時: 2014/6/26 13:09
対応状況: −−−
|
新米 登録日: 2014/6/23 居住地: 投稿: 6 |
Re: 商品検索フォームで商品コードで検索できるようにしたい。 tsuji様
ご返答ありがとうございます。 いろいろ試してみましたが、うまくいきませんでした。 納品の都合もありましたので、不本意ではありますが 商品登録の際の「検索ワード」に商品コードを入力する事により一旦解決いたしました。 ご回答ありがとうございました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |