バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 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 という名前を使っており、混同する気がします。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は89,072名です
総投稿数は110,021件です

投稿数ランキング

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