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

Тема в разделе "NetCat", создана пользователем snipsnap, 13 май 2010.

Статус темы:
Закрыта.
  1. snipsnap

    snipsnap Создатель

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

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

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

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

    Что посоветуете?
     
  2. stasdre

    stasdre Постоялец

    Регистр.:
    15 янв 2010
    Сообщения:
    125
    Симпатии:
    18
    В таком случаи могу посоветовать использовать системные настройки компонета, где можно составить свой запрос
     
  3. snipsnap

    snipsnap Создатель

    Регистр.:
    14 окт 2009
    Сообщения:
    25
    Симпатии:
    1
    Свой запрос сотавить можно, а как вывести его результат в формате определенного макета дизайна?
     
  4. stasdre

    stasdre Постоялец

    Регистр.:
    15 янв 2010
    Сообщения:
    125
    Симпатии:
    18
    У тебя есть компонет "Товары" с определенным дизайном вывода товаров. Когда ты состовляешь запрос в системных настройкак компонента, товары у тебя будут выводиться в том же дизайне. Более подробно почитай в мануале к 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
    Почитай в мануали это написано подробнее
     
  5. snipsnap

    snipsnap Создатель

    Регистр.:
    14 окт 2009
    Сообщения:
    25
    Симпатии:
    1
    Благодарю. Этот механизм я видел, но как он поможет мне найти книгу по поисковой фразе вроде "Ржешевский Сталин"? Эти слова находятся в разных полях таблицы, Ржешевский - часть имени автора, Сталин - часть названия книги.
    Как сформировать такой запрос?
     
  6. stasdre

    stasdre Постоялец

    Регистр.:
    15 янв 2010
    Сообщения:
    125
    Симпатии:
    18
    Тогда можешь использовать стандартный скрипт поиска который делает индексацию и заносит все проиндексированное в одну таблицу и выбирать уже из нее, только <content></content> поставь там где выводяться книги дабы исключить другой контент
     
  7. snipsnap

    snipsnap Создатель

    Регистр.:
    14 окт 2009
    Сообщения:
    25
    Симпатии:
    1
    А как нибудь можно вывести результаты работы стандартного скрипта поиска втом же виде, как товары отображаются в каталоге, с картиками товаров и прочими атрибутами?
     
  8. stasdre

    stasdre Постоялец

    Регистр.:
    15 янв 2010
    Сообщения:
    125
    Симпатии:
    18
    1. Вариант править компонент "Поиск по сайту" и заюзывать его под дизайн.

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

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