質問 > フロント機能 > 2.11.4 検索に商品コードも含めたい |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
sea_gull |
投稿日時: 2011/12/19 18:43
対応状況: −−−
|
常連 登録日: 2011/3/28 居住地: 投稿: 40 |
2.11.4 検索に商品コードも含めたい 商品検索に商品コードでも検索出来るようにしたいのですが、
エラーが出てしまいます。 一覧コメントは下記の方法で含めることが出来ました。 ▼参考にしたサイト http://www.hiro-blog.com/2011/07/ec-cube-2-11-1%E3%81%A7%E6%A4%9C%E7%B4%A2%E3%82%AD%E3%83%BC%E3%83%AF%E3%83%BC%E3%83%89%E3%81%AB%E4%B8%80%E8%A6%A7%E3%81%A8%E8%A9%B3%E7%B4%B0%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AE%E6%96%87%E7%AB%A0.html /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.main_list_comment ILIKE ? OR alldtl.product_code_min ILIKE ?) "; $searchCondition['arrval'][] = "%$val%"; $searchCondition['arrval'][] = "%$val%"; $searchCondition['arrval'][] = "%$val%"; $searchCondition['arrval'][] = "%$val%"; } } ------------------------------------------------------------------------------------------ [EC-CUBE]2.11.4 [レンタルサーバ]ファーストサーバ [OS]Linux [PHP]5.3.6 [データベース]MySQL 5.0.67 [WEBサーバ]Apache ------------------------------------------------------------------------------------------ |
fukap |
投稿日時: 2011/12/19 19:43
対応状況: −−−
|
仙人 登録日: 2009/7/7 居住地: 滋賀県 投稿: 907 |
Re: 2.11.4 検索に商品コードも含めたい おそらくシステムエラーが出たのだと思うので、
data/logs/site.log でエラーの内容を教えてもらえればレスが付きやすいと思います。 |
sea_gull |
投稿日時: 2011/12/19 22:04
対応状況: −−−
|
常連 登録日: 2011/3/28 居住地: 投稿: 40 |
Re: 2.11.4 検索に商品コードも含めたい ご連絡ありがとうございます。
お手数をお掛けして申し訳ありません。 下記、エラーとなっております。 ▼▼▼ エラーメッセージ ▼▼▼ https://www.abc.net/shop/products/list.php?transactionid=d4abfd8fb3925e08fd4538f41afcc90e90341e45&mode=search&category_id=&name=nabe-01&search.x=42&search.y=7 SERVER_ADDR: 000.000.000.000 REMOTE_ADDR: 000.000.000.000 USER_AGENT: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) SQL: SELECT count(*) FROM ( SELECT alldtl.product_id FROM dtb_products AS alldtl JOIN dtb_product_categories AS T2 ON alldtl.product_id = T2.product_id JOIN dtb_category ON T2.category_id = dtb_category.category_id WHERE alldtl.del_flg = 0 AND alldtl.status = 1 AND ( alldtl.name LIKE ? OR alldtl.comment3 LIKE ? OR alldtl.main_list_comment LIKE ? OR alldtl.product_code_min LIKE ?) GROUP BY alldtl.product_id ) as t MDB2 Error: no such field _doQuery: [Error message: Could not execute statement] [Last executed query: PREPARE mdb2_statement_mysql_7d3cc05acce102417290893b6c3b3af623ff85f9f FROM 'SELECT count(*) FROM ( SELECT alldtl.product_id FROM dtb_products AS alldtl JOIN dtb_product_categories AS T2 ON alldtl.product_id = T2.product_id JOIN dtb_category ON T2.category_id = dtb_category.category_id WHERE alldtl.del_flg = 0 AND alldtl.status = 1 AND ( alldtl.name LIKE ? OR alldtl.comment3 LIKE ? OR alldtl.main_list_comment LIKE ? OR alldtl.product_code_min LIKE ?) GROUP BY alldtl.product_id ) as t'] [Native code: 1054] [Native message: Unknown column 'alldtl.product_code_min' in 'where clause'] /virtual/www/shop/products/list.php 34:LC_Page_Products_List_Ex->process /virtual/www/shop/data/class_extends/page_extends/products/LC_Page_Products_List_Ex.php 56:LC_Page_Products_List->process /virtual/www/shop/data/class/pages/products/LC_Page_Products_List.php 87:LC_Page_Products_List->action /virtual/www/shop/data/class/pages/products/LC_Page_Products_List.php 124:LC_Page_Products_List->lfGetProductAllNum /virtual/www/shop/data/class/pages/products/LC_Page_Products_List.php 405:SC_Product->findProductCount /virtual/www/shop/data/class/SC_Product.php 129:SC_Query->getOne /virtual/www/shop/data/class/SC_Query.php 601:SC_Query->prepare /virtual/www/shop/data/class/SC_Query.php 873:MDB2_Driver_mysql->prepare /virtual/www/shop/data/module/MDB2/Driver/mysql.php 1123:MDB2_Driver_mysql->_doQuery /virtual/www/shop/data/module/MDB2/Driver/mysql.php 798:MDB2_Driver_Common->raiseError /virtual/www/shop/data/module/MDB2.php 1497:PEAR->raiseError /virtual/www/shop/data/module/PEAR.php 557:MDB2_Error->MDB2_Error /virtual/www/shop/data/module/MDB2.php 1009:PEAR_Error->PEAR_Error ▲▲▲ エラーメッセージ ▲▲▲ |
fukap |
投稿日時: 2011/12/20 14:05
対応状況: −−−
|
仙人 登録日: 2009/7/7 居住地: 滋賀県 投稿: 907 |
Re: 2.11.4 検索に商品コードも含めたい エラーの内容は、alldtl.product_code_min というカラムが存在しないというものです。
パッと見たところ、alldtl.product_code_min は存在しそうに見えたのですが、 じっくり見てみると、商品情報($arrProducts)を取得する前に実行される lfGetProductAllNum() や lfGetProductsList() では、 dtb_products に対して alldtl というエイリアスが付けられており、 dtb_products には product_code_min が存在しないことから、システムエラーが発生するようです。 ですので、product_code_min を検索条件に追加したい場合は、この部分の仕様を理解した上で、 data/class/SC_Product.php の findProductCount() や findProductIdsOrder() も修正する必要がありそうです。 # SC_Product::findProductCount で、"dtb_products AS alldtl" としたのは、 # 負荷を少なくする意味でたぶん有効なんだろうと思いますが、 # SC_Product::alldtlSQL で alldtl という名前を使っており、混同する気がします。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |