Перейти к содержимому


Строгий поиск товаров, где доп. характеристика = 0


  • Вы не можете ответить в тему
В этой теме нет ответов

#1 vsupport

    Продвинутый пользователь

  • Администраторы
  • 758 сообщений
Репутация: 31
Ассистент

Отправлено 01 July 2011 - 01:44 PM

Вообщем если товару задать доп. характеристику произвольным значением равным "0", то при поиске по этой доп характеристике в результате будут выведены все товары с 0,10,20,30..... и т.д.

Это недопустимо в случае строгого поиска, например Вылет автомобильного диска. В этом случае поиск теряет всякий смысл.

Проблема в функции _testExtraParametrsTemplate в product_functions.php, а именно в куске

if(strstr(strtolower((string)trim($valueFromDataBase[$v])),strtolower((string)trim($valueFromForm)))){

$existFlag = true;

break;

}

strstr(strtolower((string)trim($valueFromDataBase[$v])),strtolower((string)trim($valueFromForm))) вернет true и при сравнение 0 и 0, и при 0 и 50 и т.д.

Решение:
замените условие на
if((bool)preg_match("|^".strtolower((string)trim($valueFromDataBase[$v]))."$|", strtolower((string)trim($valueFromForm))))

источник


  • 0