バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 商品の検索で、新着順にする。

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kmDnk
投稿日時: 2019/8/23 18:12
対応状況: 確認中
常連
登録日: 2017/8/19
居住地:
投稿: 65
商品の検索で、新着順にする。
[EC-CUBE] 3.0.15
[レンタルサーバ] エックスサーバー
[OS] macOS 10.14.5
[PHP] 7.2.14
[データベース] version: 5.7.17 MySQL
[WEBサーバ] apache 2.4.x、nginx
[ブラウザ] Google Chrome バージョン: 76.0.3806.1
[導入プラグインの有無]
・CategoryContent
・EccubeApi
・MailMagazine
・MyGallery
・OGPセット プラグイン
・OGPSetter
・OrderPdf
・PayPalExpress
・ProductReview
・Shiro8NewProductBlock3
・TransportCSVexportB2

デフォルトの検索結果だと、価格の安い順となるところを
「新着順」としたいため、以下の内容を参照してDBを設定したところ
検索結果がエラー表示となってしまいました。
https://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=flat&order=ASC&topic_id=17472&forum=10

当方はファイルをカスタマイズせずに、
(src/Eccube/Repository/ProductRepository.phpのファイルのorder byの箇所)
DBのみ変更してから検索結果を見たらエラーとなってしまい焦ってDBを元に戻したつもりですが、最初と違う(?)のか新着順でソートしたときだけエラー表示です。
DB(mtb_product_list_order_by)は現在以下の様になっています。

id | name | rank |
+----+--------------------+------+
| 1 | 価格が低い順 | 0 |
| 2 | 新着順 | 2 |
| 3 | 価格が高い順 | 1 |


なぜ、最初の通り表示されなくなってしまったのでしょうか。

ご存じの方ご教示頂けますと嬉しいです。
h_tanaka
投稿日時: 2019/8/23 20:03
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: 商品の検索で、新着順にする。
どのようなエラーが出ますか?デバッグモードで確認してみてください。


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

kmDnk
投稿日時: 2019/8/23 23:41
対応状況: −−−
常連
登録日: 2017/8/19
居住地:
投稿: 65
Re: 商品の検索で、新着順にする。
回答ありがとうございます。

デバッグモードに自分のIPアドレスを追加して
見ると「You are not allowed to access this file. Check index_dev.php for more information.」出てしまいます。

IPアドレスはあっているようですし、
https://www.cman.jp/network/support/go_access.cgi
index_dev.phpへのIPアドレスはこのサイトを参考に設定しました。

https://qiita.com/poego/items/68f556adf89116246bec

因みに、システムエラーが表示されるのは
検索した単語に対して絞り込みをしたときでした。

よろしくお願い致します。
h_tanaka
投稿日時: 2019/8/23 23:43
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: 商品の検索で、新着順にする。
サーバーの仕様でクロスドメインとなっている可能性があるため、html/index_dev.php の次のif文の第1および第2条件を削除してください。

if (isset($_SERVER['HTTP_CLIENT_IP'])
|| isset($_SERVER['HTTP_X_FORWARDED_FOR'])
|| !in_array(@$_SERVER['REMOTE_ADDR'], $allow)
) {
 ↓
if (/*isset($_SERVER['HTTP_CLIENT_IP'])
|| isset($_SERVER['HTTP_X_FORWARDED_FOR'])
||*/ !in_array(@$_SERVER['REMOTE_ADDR'], $allow)
) {


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

kmDnk
投稿日時: 2019/8/24 0:02
対応状況: −−−
常連
登録日: 2017/8/19
居住地:
投稿: 65
Re: 商品の検索で、新着順にする。
回答、ありがとうございます。

>html/index_dev.php の次のif文の第1および第2条件を削除してください。
対象ファイルが html/index_dev.phpとのことですが
ルートディレクトリにあるindex_dev.phpでよかったでしょうか?

htmlディレクト以下には該当ファイルが無かったもので。
h_tanaka
投稿日時: 2019/8/24 0:05
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: 商品の検索で、新着順にする。
標準では html/index_dev.php です。
ルート直下にしかないということは、URLから html を削除する処理を行っていると思われます。
この場合は、ルート直下のもので合っています。


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

kmDnk
投稿日時: 2019/8/24 0:23
対応状況: −−−
常連
登録日: 2017/8/19
居住地:
投稿: 65
Re: 商品の検索で、新着順にする。
回答ありがとうございます。

>標準では html/index_dev.php です。
ルート直下にしかないということは、URLから html を削除する処理を行っていると思われます。
この場合は、ルート直下のもので合っています。
そういえば、urlからhtmlを削除する処理を行ったことがありました。

無事、デバッグモードにすることができました。
ありがとうございます。

今回は、検索単語を入れて検索した結果が
表示された後に、「新着順」で並べ替えしたい時のエラーを
確認したいのですが、この場合
エラー表示されたときのURLのルート直下にindex_dev.phpを
入れて見たら良いのでしょうか?


https://hoge.com/ec/index_dev.php/products/list?mode=&category_id=&name=hogehoge&pageno=1&disp_number=15&orderby=2

そうすると
以下の2つのエラーが出ます。


「QueryException in QueryException.php line 63:
[Semantical Error] line 0, col 345 near 'pc.code) LIKE': Error: 'pc' is not defined.」

「QueryException in QueryException.php line 41:
SELECT p FROM Eccube\Entity\Product p WHERE p.Status = 1 AND (NORMALIZE(p.name) LIKE NORMALIZE(:keyword0) OR NORMALIZE(p.search_word) LIKE NORMALIZE(:keyword0) OR NORMALIZE(p.description_list) LIKE NORMALIZE(:keyword0) OR NORMALIZE(p.description_detail) LIKE NORMALIZE(:keyword0) OR NORMALIZE(p.free_area) LIKE NORMALIZE(:keyword0) OR NORMALIZE(pc.code) LIKE NORMALIZE(:keyword0)) ORDER BY p.create_date DESC, p.id DESC」
h_tanaka
投稿日時: 2019/8/24 0:26
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: 商品の検索で、新着順にする。
クエリ発行時に pc が指定されているが、pc が未定義です。というようなエラーです。

エラーの詳細表示にエラーが発生してるファイル群が表示されていますので、たどっていけば該当の Repository ファイルと行番号までわかると思います。


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

kmDnk
投稿日時: 2019/8/24 0:37
対応状況: −−−
常連
登録日: 2017/8/19
居住地:
投稿: 65
Re: 商品の検索で、新着順にする。
回答ありがとうございます。

QueryException.php
と言うファイルは2つ見つかったのですが

ec/vendor/doctrine/dbal/lib/Doctrine/DBAL/Query/QueryException.php
ec/vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php

「ec/vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php」のファイルを見てみましたが
ちょっとわかりませんでした。

ただ、pcというクエリは
自分が以前そういった処理をさせたことがあったので
それが関係ありそうです。

https://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=flat&order=ASC&topic_id=21769&forum=10
h_tanaka
投稿日時: 2019/8/24 0:44
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: 商品の検索で、新着順にする。
いえ、そのファイルを見てもわからないと思います。
エラー内に複数ファイル表示されていませんか?
一つずつたどっていけばエラー原因となる Repository や Controller のファイルがあるはずです。


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

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


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.