Автор Тема: Поиск товаров не работает  (Прочитано 9326 раз)

Оффлайн anna-svit

  • Пользователь
  • **
  • Сообщений: 70
    • Просмотр профиля
Поиск товаров не работает
« : Ноября 30, 2013, 03:40:26 pm »
1. LegoSP 6.1.
2. самостоятельно настроенный сервер
3. http://tehno-bytik.com.ua/
4. Поиск работает только если искать по коду товара. А так если ввести, например, Samsung UE46F5300 AKXUA, то в результате поиска выдает все товары, начинающиеся на samsung. А их оооооочень много.
5. проблема началась после обновления с 4.6 на 6.1.

Где нужно копать? и что нужно поменять?

Оффлайн Heisenberg

  • Спец
  • ***
  • Сообщений: 157
    • Просмотр профиля
Re: Поиск товаров не работает
« Ответ #1 : Декабря 02, 2013, 09:20:44 pm »
Ну, если мануалы у меня не "самописные", в версии 4.5(6) был цикл for по каждому совпадению-слову. и в результат выводился оптимальный вариант в поисковом запросе.

Оффлайн anna-svit

  • Пользователь
  • **
  • Сообщений: 70
    • Просмотр профиля
Re: Поиск товаров не работает
« Ответ #2 : Декабря 05, 2013, 06:48:58 pm »
если честно, из ответов ничего не поняла. и что дальше мне делать?

Оффлайн Алекс

  • Пользователь
  • **
  • Сообщений: 40
    • Просмотр профиля
Re: Поиск товаров не работает
« Ответ #3 : Декабря 05, 2013, 09:28:18 pm »
на самом деле такая проблема есть и у меня на сайте. поиск работает криво. задаю в поиске 'фара symbol' - поиск вываливает весь список фар на сайте . а это несколько сотен позиций. с переходом с лего 4.6 не связываю, т.к. просто сделал новый сайт на лего 6.1 , но на версии 4.6 такого косяка не было.

Оффлайн Heisenberg

  • Спец
  • ***
  • Сообщений: 157
    • Просмотр профиля
Re: Поиск товаров не работает
« Ответ #4 : Декабря 05, 2013, 09:34:09 pm »
ну, думаю поправят, вернут(или оптимизируют) старый вариант.

Оффлайн anna-svit

  • Пользователь
  • **
  • Сообщений: 70
    • Просмотр профиля
Re: Поиск товаров не работает
« Ответ #5 : Декабря 06, 2013, 12:25:44 am »
и у меня на версии 4.6 такого косяка замечено не было. что не так сделала? как исправить? помогите, пожалуйста!

Оффлайн Heisenberg

  • Спец
  • ***
  • Сообщений: 157
    • Просмотр профиля
Re: Поиск товаров не работает
« Ответ #6 : Декабря 06, 2013, 01:23:06 am »
Цитировать
..что не так сделала?
причина не в Ваших не знаниях или правках, а в алгоритме, который используется.
там поправить пару строк всего, но есть условие, и его стоит соблюдать.

Оффлайн anna-svit

  • Пользователь
  • **
  • Сообщений: 70
    • Просмотр профиля
Re: Поиск товаров не работает
« Ответ #7 : Декабря 07, 2013, 11:45:12 pm »
Цитировать
..что не так сделала?
причина не в Ваших не знаниях или правках, а в алгоритме, который используется.
там поправить пару строк всего, но есть условие, и его стоит соблюдать.
знать бы, какие строки править... и можно ли? что, у одной меня и у Алекса такая проблема?
на самом деле такая проблема есть и у меня на сайте. поиск работает криво. задаю в поиске 'фара symbol' - поиск вываливает весь список фар на сайте . а это несколько сотен позиций. с переходом с лего 4.6 не связываю, т.к. просто сделал новый сайт на лего 6.1 , но на версии 4.6 такого косяка не было.

Оффлайн anna-svit

  • Пользователь
  • **
  • Сообщений: 70
    • Просмотр профиля
Re: Поиск товаров не работает
« Ответ #8 : Декабря 11, 2013, 02:57:33 pm »
Если попроще, что бы меньше править, тогда открываете файл \includes\search_simple.php и ищете строку где то 195 с кодом
$search explode(" ",$_GET["searchstring"]);
и заменяете его на
$search[0] = $_GET["searchstring"];

После этого будет искать всю фразу целиком а не только первое слово.

P.S. Если что не так, сильно не ругайте +)  :o

Спасибо Вам огромное!!!!! поменяла, всё получилось!!! ищет то, что нужно!

Оффлайн Heisenberg

  • Спец
  • ***
  • Сообщений: 157
    • Просмотр профиля
Re: Поиск товаров не работает
« Ответ #9 : Декабря 13, 2013, 12:16:41 am »
Цитировать
.. но есть условие, и его стоит соблюдать.
а.., ну программистам все можно.. ::)
но все же обход по каждому слову/буквосочетанию, самое оно.
правильней по отношению пользователя при наборе(даже при ошибке в слове).

Оффлайн Heisenberg

  • Спец
  • ***
  • Сообщений: 157
    • Просмотр профиля
Re: Поиск товаров не работает
« Ответ #10 : Декабря 13, 2013, 05:39:38 pm »
это я понял. но я, про этот вариант:
                        if (count($search)>1) for ($j=1; $j<count($search); $j++) $ss = 'AND (P.name LIKE \'%'.$search[$j].'%\' OR P.h1 LIKE \'%'.$search[$j].'%\' OR P.product_code LIKE \'%'.$search[$j].'%\' OR P.brief_description LIKE \'%'.$search[$j].'%\') ';
                        else $ss='';
                        $g_search_count=db_r('select count(*) FROM `' . PRODUCTS_TABLE . '` AS P INNER JOIN `' . CATEGORIES_TABLE . '` AS C USING(categoryID) WHERE P.enabled =1 AND C.enabled =1 and (P.name LIKE \'%'.$search[0].'%\' OR P.h1  LIKE \'%'.$search[0].'%\' OR P.product_code LIKE \'%'.$search[0].'%\' OR P.brief_description LIKE \'%'.$search[0].'%\')'.$ss); 
                        $sql = 'SELECT P.*,B.name brand_name, B.hurl brand_hurl, count(R.reviewID) count_review FROM `' . PRODUCTS_TABLE . '` AS P LEFT JOIN `' . REVIEW_TABLE . '` as R USING(productID) LEFT JOIN `' . BRAND_TABLE . '` as B USING (brandID)  INNER JOIN `' . CATEGORIES_TABLE . '` AS C ON (P.categoryID = C.categoryID) WHERE P.enabled =1 AND C.enabled =1 and (P.name LIKE \'%'.$search[0].'%\' OR P.h1  LIKE \'%'.$search[0].'%\' OR P.product_code LIKE \'%'.$search[0].'%\' OR P.brief_description LIKE \'%'.$search[0].'%\')'.$ss.' GROUP BY `P`.`productID` ORDER BY P.' . $_SESSION['sort'] . ' ' . $_SESSION['order'];