john_wk Posted March 8, 2011 Share Posted March 8, 2011 Очень нужно реализовать поиск по окончанию слов или кодов в магазине, может есть готовый модуль?, хотя я искал и не нашел, может плохо искал... Link to comment Share on other sites More sharing options...
artyr_n Posted March 8, 2011 Share Posted March 8, 2011 classes/Seach.phpв функции find в запросах поиска попробуйте добавить % перед искомым Link to comment Share on other sites More sharing options...
john_wk Posted March 8, 2011 Author Share Posted March 8, 2011 Благодарю за совет, но не получается, пробовал разные варианты, или вообще не работает поиск, или без изменений. Может не делаю как надо? Можно немного подробнее... Link to comment Share on other sites More sharing options...
artyr_n Posted March 8, 2011 Share Posted March 8, 2011 в файле classes/Seach.phpфункция findищем следуещее место if (!empty($word)) { $word = str_replace('%', '\\%', $word); $word = str_replace('_', '\\_', $word); $whereArray[] = ' p.id_product '.($word[0] == '-' ? 'NOT' : '').' IN ( SELECT id_product FROM '._DB_PREFIX_.'search_word sw LEFT JOIN '._DB_PREFIX_.'search_index si ON sw.id_word = si.id_word WHERE sw.id_lang = '.intval($id_lang).' AND sw.word LIKE '.($word[0] == '-' ? ' \''.pSQL(Tools::substr($word, 1, PS_SEARCH_MAX_WORD_LENGTH)).'%\'' : '\''.pSQL(Tools::substr($word, 0, PS_SEARCH_MAX_WORD_LENGTH)).'%\'').' ) '; if ($word[0] != '-') $scoreArray[] = 'sw.word LIKE \''.pSQL(Tools::substr($word, 0, PS_SEARCH_MAX_WORD_LENGTH)).'%\''; } и заменяем в нем AND sw.word LIKE '.($word[0] == '-' ? ' \'%'.pSQL(Tools::substr($word, 1, PS_SEARCH_MAX_WORD_LENGTH)).'%\'' : '\'%'.pSQL(Tools::substr($word, 0, PS_SEARCH_MAX_WORD_LENGTH)).'%\'').' и $scoreArray[] = 'sw.word LIKE \'%'.pSQL(Tools::substr($word, 0, PS_SEARCH_MAX_WORD_LENGTH)).'%\''; Link to comment Share on other sites More sharing options...
Recommended Posts