Помощь Модуль поиска

alex500500

Создатель
Регистрация
13 Ноя 2013
Сообщения
22
Реакции
3
Модуль поиска . Нужен модуль поиска с результатом вхождения , например есть товар 555-666 , а забивают 55566 , соответственно товар не выходит . Хорошо бы на ajax , с выводом не в странице товара а моментально на главной . И вообще в теме с поиском как то тяжело . Был бы програмером , написал бы для всех :) . Поделитесь , если есть у кого какие нибудь варианты .
 
Модуль поиска . Нужен модуль поиска с результатом вхождения , например есть товар 555-666 , а забивают 55566 , соответственно товар не выходит . Хорошо бы на ajax , с выводом не в странице товара а моментально на главной . И вообще в теме с поиском как то тяжело . Был бы програмером , написал бы для всех :) . Поделитесь , если есть у кого какие нибудь варианты .
Попробуй сделать вот это:
1. Поиск - в api/Products.php
после
Код:
$keywords = explode(' ', $filter['keyword']);

пишем:

$keywords_table = ', s_variants v ';
$keywords_field = ', v.sku ';


2. вместо
Код:
$keyword_filter .= $this->db->placehold('AND (p.name LIKE "%'.mysql_real_escape_string(trim($keyword)).'%" OR p.meta_keywords LIKE "%'.mysql_real_escape_string(trim($keyword)).'%") ');

пишем:

$keyword_filter .= $this->db->placehold(' AND p.id=v.product_id AND (v.sku LIKE "%'.mysql_real_escape_string(trim($keyword)).'%" OR p.name LIKE "%'.mysql_real_escape_string(trim($keyword)).'%" OR p.meta_keywords LIKE "%'.mysql_real_escape_string(trim($keyword)).'%") ');


3. дальше в запросе после
Код:
LEFT JOIN __brands b ON p.brand_id = b.id

пишем:

$keywords_table


4. теперь live поиск - открываем ajax/search_products.php
и меняем запрос на

$simpla->db->query('SELECT p.id, p.name, i.filename as image FROM __products p
LEFT JOIN __images i ON i.product_id=p.id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id LIMIT 1), __variants
WHERE p.id=__variants.product_id AND (p.name LIKE "%'.mysql_real_escape_string($keyword).'%" OR __variants.sku LIKE "%'.mysql_real_escape_string($keyword).'%") AND visible=1 ORDER BY p.name LIMIT ?', $limit);
 
Назад
Сверху