Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

поиск только по модели товара


Recommended Posts

Доброго времени суток всем , столкнулся с такой задачей , нужно чтобы поиск искал только по модели , а не по названию товара .

сейчас он ищет по названию . 

я ищу к примеру товар с кодом А 0001 он выдаёт все товары где есть 0001 и в конце списка то что мне нужно .

Мне надо чтобы если пользователь введёт А 0001 или А0001 выдавало только эти товары и ничего более

 

Заранее спасибо ) 

Надіслати
Поділитися на інших сайтах


33 минуты назад, Yuorv сказал:

Доброго времени суток всем , столкнулся с такой задачей , нужно чтобы поиск искал только по модели , а не по названию товара .

сейчас он ищет по названию . 

я ищу к примеру товар с кодом А 0001 он выдаёт все товары где есть 0001 и в конце списка то что мне нужно .

Мне надо чтобы если пользователь введёт А 0001 или А0001 выдавало только эти товары и ничего более

 

Заранее спасибо ) 

Так не стоит делать. Лучше добавить отдельный поиск именно по модели товара.

Но если всё же решите делать глобально, то можно поправить штатный запрос в модели товара.

В файле catalog/model/catalog/product.php

Вот это:

if (!empty($data['filter_name']) || !empty($data['filter_tag'])) {


Заменить на это:
 

if (!empty($data['filter_name'])) {
    $sql .= " AND LCASE(p.model) = '%" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "%'";
} else if (!empty($data['filter_tag'])) {

 

Заменить нужно в двух местах. Вхождение встречается два раза.

Правку привёл на примере OC3

Надіслати
Поділитися на інших сайтах

 

1 час назад, mpn2005 сказал:

Так не стоит делать. Лучше добавить отдельный поиск именно по модели товара.

Но если всё же решите делать глобально, то можно поправить штатный запрос в модели товара.

В файле catalog/model/catalog/product.php

Вот это:


if (!empty($data['filter_name']) || !empty($data['filter_tag'])) {


Заменить на это:
 


if (!empty($data['filter_name'])) {
    $sql .= " AND LCASE(p.model) = '%" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "%'";
} else if (!empty($data['filter_tag'])) {

 

Заменить нужно в двух местах. Вхождение встречается два раза.

Правку привёл на примере OC3

ОС 2.3 перестал вообще работать поиск

Надіслати
Поділитися на інших сайтах


Только что, Yuorv сказал:

ОС 2.3 перестал вообще работать поиск

Я писал ориентировочный код. Мог где-то опечататься.

Вы же не указывали версию, я привёл пример для OC3.

Надіслати
Поділитися на інших сайтах

2 минуты назад, Yuorv сказал:

перестал вообще работать поиск

Как перестал? Выдаёт ошибку? Не ищет?

Похоже я должен быть заинтересован вашем вопросе. А вам оно и не надо вовсе.

 

Надіслати
Поділитися на інших сайтах

$sql .= " AND LCASE(p.model) = '%" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "%'";

Вот тут я накосячил.

Надо вот так:

$sql .= " AND LCASE(p.model) LIKE '%" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "%'";

 

Надіслати
Поділитися на інших сайтах

1 час назад, mpn2005 сказал:

Так не стоит делать. Лучше добавить отдельный поиск именно по модели товара.

Но если всё же решите делать глобально, то можно поправить штатный запрос в модели товара.

В файле catalog/model/catalog/product.php

Вот это:


if (!empty($data['filter_name']) || !empty($data['filter_tag'])) {


Заменить на это:
 


if (!empty($data['filter_name'])) {
    $sql .= " AND LCASE(p.model) = '%" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "%'";
} else if (!empty($data['filter_tag'])) {

 

Заменить нужно в двух местах. Вхождение встречается два раза.

Правку привёл на примере OC3

вот такая ошибка

 

Parse error: syntax error, unexpected 'if' (T_IF), expecting function (T_FUNCTION) or const (T_CONST) in /var/www/fastuser/data/www/benefistutu.com/system/storage/modification/catalog/model/catalog/product.php on line 309

Надіслати
Поділитися на інших сайтах


1 минуту назад, Yuorv сказал:

Parse error: syntax error, unexpected 'if' (T_IF), expecting function (T_FUNCTION) or const (T_CONST) in /var/www/fastuser/data/www/benefistutu.com/system/storage/modification/catalog/model/catalog/product.php on line 309

Покажите, что в районе 309 строки в этом файле.

Надіслати
Поділитися на інших сайтах

Вы что не видите, что ошибка не касается описанной правки?

image.thumb.png.81489a041b0422dc037f2150e6b25fe5.png

 

Отключите модификатор фильтра. Проверьте поиск, а потом уже дружите всё вместе.

  • +1 2
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.