Поиск по товарам в интернет-магазине

Статус
В этой теме нельзя размещать новые ответы.

snipsnap

Создатель
Регистрация
14 Окт 2009
Сообщения
25
Реакции
1
Есть интернет-магазин книг.
У каждой книги есть автор, название и описание.

Например:
Автор:Олег Ржешевский
Название: Сталин и Черчилль
Описание: Книга содержит документы фондов И.Сталина и У.Черчилля, хранящиеся в архивах России, Великобритании и США, раскрывающие дипломатическую и политическую историю антигитлеровской коалиции. На основе официальных записей встреч, бесед и дискуссий Сталина и Черчилля во взаимосвязи с событиями Второй мировой и Великой Отечественной войн рассматриваются советско-английские отношения, поиски двумя "непримиримыми союзниками" компромисса, его возможностей и пределов, значение в этом искусства переговоров и личных отношений.

Коллеги, подскажите, как организовать поиск по разным полям товара. При этом, нужно чтобы результаты поиска выдавались в в виде списка товаров. Так же как мы их видим в каталоге.
Например запрос "Ржешевский Сталин". должен вывести список книг, среди которых должна присутствовать обозначенная выше книга.

Если использовать стандарнтый поиск нетката (?srchPat[2]=xxx), то мы ничего не найдем, т.к. слова находятся в разных полях.
Если использовать модуль поиска по сайту, то результат выводится в виде ссылок на страницы и преобразовать его к каталожному виду не представляю как.

Что посоветуете?
 
В таком случаи могу посоветовать использовать системные настройки компонета, где можно составить свой запрос
 
Свой запрос сотавить можно, а как вывести его результат в формате определенного макета дизайна?
 
У тебя есть компонет "Товары" с определенным дизайном вывода товаров. Когда ты состовляешь запрос в системных настройкак компонента, товары у тебя будут выводиться в том же дизайне. Более подробно почитай в мануале к NetCat там это нормально описано. Привиду пример:

Например ищем по названию книги. Ссылка будет следующего вида: /books/?name='Название книги'

В системных настройках компонента пишем следующее:
PHP:
if(!empty($_GET[name]))
{
   $query_where = "(Name=".$_GET[name].")"; //Name это поле БД в котором содержиться название книги
}

P.S. Запрос в NetCat такого вида:
PHP:
SELECT a.список_полей,$query_select
FROM MessageXX AS a,$query_from
$query_join
WHERE условия_выборки AND $query_where
GROUP BY $query_group
ORDER BY $query_order
LIMIT $query_limit

Почитай в мануали это написано подробнее
 
Благодарю. Этот механизм я видел, но как он поможет мне найти книгу по поисковой фразе вроде "Ржешевский Сталин"? Эти слова находятся в разных полях таблицы, Ржешевский - часть имени автора, Сталин - часть названия книги.
Как сформировать такой запрос?
 
Тогда можешь использовать стандартный скрипт поиска который делает индексацию и заносит все проиндексированное в одну таблицу и выбирать уже из нее, только <content></content> поставь там где выводяться книги дабы исключить другой контент
 
А как нибудь можно вывести результаты работы стандартного скрипта поиска втом же виде, как товары отображаются в каталоге, с картиками товаров и прочими атрибутами?
 
1. Вариант править компонент "Поиск по сайту" и заюзывать его под дизайн.

2. Вариант делать самому запрос к таблице Поиска и выводить так как тебе нужно.

В обоих случаях тебе пригодиться использовать в запросе LEFT JOIN (объединение двух таблиц)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху