バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 2.13.3商品マスター「商品名検索」で大文字小文字の区別を無くしたい

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
nantoka
投稿日時: 2015/11/13 4:30
対応状況: −−−
常連
登録日: 2009/4/7
居住地:
投稿: 38
2.13.3商品マスター「商品名検索」で大文字小文字の区別を無くしたい
[EC-CUBE] 2.13.3、2.4.4からの移行(プラグイン無し)
[レンタルサーバ] KAGOYAサーバ
[PHP] 5.4.45
[データベース] PostgreSQL 9.3.5

[現象]
商品マスターの商品名検索で、大文字なら大文字、小文字なら小文字しかヒットしません。
例:「TEST」を入力するとTESTだけヒット、「test」を入力するとtestだけヒット
2.4.4と2.12.3で確認したところ、大文字小文字の区別無く検索できます。
2.13.3の仕様でしょうか?
可能であれば、大文字小文字の区別無く検索できるよう変更したいと思います。
変更箇所を教えて頂けますでしょうか?
また、当方の環境のみの現象でしたら、チェック箇所をご教授願えれば助かります。

data/class/pages/admin/Products/LC_Page_Admin_Products.php
上記ファイルはカスタマイズ等はしていません。

よろしくお願い致します。




yuh
投稿日時: 2015/11/13 10:41
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 2.13.3商品マスター「商品名検索」で大文字小文字の区別を無くしたい
LC_Page_Admin_ProductsのbuildQueryで

$where .= ' AND name LIKE ?';
となっている部分を
$where .= ' AND name ILIKE ?';
に変更すればできると思いますが、
2.12.6では
$where .= ' AND name LIKE ?';
このままになってますね。

どういう経緯で変更されたのかはわかりませんが、たぶんILIKEに変えればできると思います。
nantoka
投稿日時: 2015/11/15 20:29
対応状況: −−−
常連
登録日: 2009/4/7
居住地:
投稿: 38
Re: 2.13.3商品マスター「商品名検索」で大文字小文字の区別を無くしたい
早い回答、ありがとうございます。
残念?ながら、buildQueryは2.12.6の時と同じ表記でした。

引用:

yuhさんは書きました:
LC_Page_Admin_ProductsのbuildQueryで

$where .= ' AND name LIKE ?';
となっている部分を
$where .= ' AND name ILIKE ?';
に変更すればできると思いますが、
2.12.6では
$where .= ' AND name LIKE ?';
このままになってますね。



今回の2.13.3のインストールはKAGOYAサーバーの「簡単インストール」を利用しました。
てっきり、いつものように検索できると思っていましたので、この部分はノーチェックでした。
事前にMAMP環境で2.13.3をインストールしていたので、試してみましたが
やはり、大文字小文字を区別しないと、ヒットしません。
---------------------
念のため、MAMP環境(MacOS10.10.5)に2.13.3を再インストールして以下を試してみました。
1.あらかじめ用意されている商品の「商品名」を変更
おなべレシピ→ONABE おなべレシピ

2.商品マスター > 商品名で検索
おなべ → 2件ヒット「おなべ」「ONABE おなべレシピ」
onabe → ヒット無し
ONABE → 1件ヒット「ONABE おなべレシピ」
---------------------

仕様が変更になったのでしょうか?
それとも、どこか見落としている部分があるでしょうか?
2.12.6のように「大文字小文字」の区別無く検索できるようにしたいと思います。

お手数おかけますが、原因、または、修正場所等教えて頂きたいと思います。
よろしくお願い致します。

nanasess
投稿日時: 2015/11/15 20:48
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2313
Re: 2.13.3商品マスター「商品名検索」で大文字小文字の区別を無くしたい
PostgreSQL の場合は、 ILIKE にすれば解決されますが、 MySQL では ILIKE が使用できません。
EC-CUBE が自動的に LIKE に変換するため大文字小文字を区別する検索となってしまいます。

以下の記事が参考になりそうです。
http://qa.atmarkit.co.jp/q/2036
nantoka
投稿日時: 2015/11/16 19:08
対応状況: −−−
常連
登録日: 2009/4/7
居住地:
投稿: 38
Re: 2.13.3商品マスター「商品名検索」で大文字小文字の区別を無くしたい
引用:

nanasessさんは書きました:
PostgreSQL の場合は、 ILIKE にすれば解決


※MAMP環境では、MySQLとPostgreSQLの両方を使えるよう設定しています。
環境の記載抜け、申し訳ありません。

参考ページの提示、ありがとうございます。そちらを読んで修正するべき事がわかりました。
PostgreSQL ですので、ILIKEにして解決しました。

最初のyuhさんの説明もドンピシャを教えて頂いていたのに、
2.12.6と同じだったら…で的外れな勘違いをしてしまいました。本当にすみません。
SQLはふわっとしたイメージだけで覚えていたので、改めて初歩を固めないと…と痛感です。


本当にありがとうございました。


追加の質問になりますが、
2.12.6では「$where .= ' AND name LIKE ?';」で大丈夫だったのはどうしてなんでしょうか…
時間があれば、教えて頂ければ嬉しく思います。


今回はありがとうございました。
nanasess
投稿日時: 2015/11/16 20:30
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2313
Re: 2.13.3商品マスター「商品名検索」で大文字小文字の区別を無くしたい
引用:

追加の質問になりますが、
2.12.6では「$where .= ' AND name LIKE ?';」で大丈夫だったのはどうしてなんでしょうか…
時間があれば、教えて頂ければ嬉しく思います。


このあたりの実装は、 2.12 も 2.13 もあまり変化がないので、通常はできないはずなのですが、もしかしたらデータベースのロケールの設定が異なっていたのかもしれません。

https://www.postgresql.jp/document/9.4/html/locale.html

MySQL の場合は照合順序の影響を受けます
nantoka
投稿日時: 2015/11/18 0:01
対応状況: 解決済
常連
登録日: 2009/4/7
居住地:
投稿: 38
Re: 2.13.3商品マスター「商品名検索」で大文字小文字の区別を無くしたい
引用:

nanasessさんは書きました:

このあたりの実装は、 2.12 も 2.13 もあまり変化がないので、通常はできないはずなのですが、もしかしたらデータベースのロケールの設定が異なっていたのかもしれません。

https://www.postgresql.jp/document/9.4/html/locale.html

MySQL の場合は照合順序の影響を受けます


実装の想定は全然できませんが、以下セクションの意味はわかるようになりました。
「ロケールの設定は以下のSQL機能に影響を与えます。」
説明、ありがとうございます。

…なんか、EC-CUBEの開発に携わってる方々、これからもよろしくお願い致します。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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.