"Похожие товары" - как организовать?
1.
ШЕДЕВР (26.05.2011 / 22:15)
Добрый вечер.
Нужно создать похожие товары, на сайте МАГАЗИНА. Вот мы например имеем 4 товара: "iphone 3g", "samsung phone", "3g modem" и "iphone 4"... как сделать, что бы при просмотре товара iphone 4, внизу показывал iphone 3g..
мне не нужно, как это будет выводиться досканально. мне нужно схема поиска СХОЖЕСТИ товара... это как сделать, разделить переменную с заголовком товара на части через проблем (например получится "iphone" и "4"),потом их искать в базе, и найденные результаты вывести? есть ли другие варианты?
2.
Lugaro (27.05.2011 / 03:48)
Полнотектовый поиск в полне подойдет и работает довольно шустро, из минусов, слова кажется короче 4 или 3х символов не будут учитыватся
Добавлено через 02:01 сек.
Сейчас с тела и запрос не вспомню, погугли с запросом "Полнотектовый поиск mysql" там сразу найдешь
3.
KOZZ (27.05.2011 / 06:24)
как вариант можно искать товары с такой же маркой, или похожим названием (like %%)
4.
Lugaro (27.05.2011 / 12:19)
3.
eGo, Для таких задач это очень медленно т.к товаров может быть не одна тысяча.
К второму посту, для поля по которому ищешь ставишь FULLTEXT INDEX, и потом ищешь SELECT * FROM table WHERE MATCH (name) AGAINST ('iphone 3g'). Там у неё ещё есть полезные возможности, документацию смотри..
5.
ШЕДЕВР (27.05.2011 / 21:12)
4, помоги развить твою идею.....
найти в таблице 'pages' в поле 'title' всё что совпадает с текстом содержащийся в переменной $titlequery...
СПАСИБО
6.
Lugaro (27.05.2011 / 21:15)
ALTER TABLE `pages` ADD FULLTEXT INDEX `SEARCH`(`title`); это создаст FULLTEXT INDEX для поля title
А на вывод SELECT * FROM pages WHERE MATCH (title) AGAINST ('iphone 3g')
7.
ШЕДЕВР (27.05.2011 / 21:16)
6, а зачем создавать новое поле? это же придется скрипт переписовать, добавлять новое поле, при его регистрации.... и т.п. без него никак???
8.
Lugaro (27.05.2011 / 21:18)
Да какое поле)) Я же говорю
это создаст FULLTEXT INDEX для поля title а SEARCH это просто имя индекса, можешь любое поставить
9.
ШЕДЕВР (27.05.2011 / 21:22)
Ошибка
SQL-запрос:
ALTER TABLE `pages` ADD FULLTEXT INDEX `SEARCH` ( `title` )
Ответ MySQL:
#1283 - Column 'title' cannot be part of FULLTEXT index
10.
Lugaro (27.05.2011 / 21:24)
Дам таблицы скинь
11.
ШЕДЕВР (27.05.2011 / 21:26)
хорошо
12.
ШЕДЕВР (27.05.2011 / 21:42)
нет(((
13.
Lugaro (27.05.2011 / 22:11)
Что нет? Дампа таблицы нет?
14.
ШЕДЕВР (27.05.2011 / 22:25)
13, ты мне что-то сказал что дашь и НЕТу ничего)))
Я ввожу то что ты дал, но mysql выводит ту ошибку, которую я тебе отправил сюда
15.
Lugaro (27.05.2011 / 22:28)
В десятом посте я дамп таблицы просил, там просто буквы одной в слове дам
п не хватает ))
16.
Андрей (27.05.2011 / 22:28)
.::lugaro::. (27 Мая 2011 / 23:24)
Дам таблицы скинь
теперь понятно))
Автор, ты скинь дам таблицы))
17.
ШЕДЕВР (27.05.2011 / 22:30)
CREATE TABLE `pages` (
`id` int(8) NOT NULL auto_increment,
`position` int(8) NOT NULL,
`urlname` varbinary(255) NOT NULL,
`title` blob NOT NULL,
`description` blob NOT NULL,
`keywords` blob NOT NULL,
`text` blob NOT NULL,
`language` varbinary(255) NOT NULL,
`designation` varbinary(255) NOT NULL,
`show` int(9) NOT NULL,
`category` int(8) NOT NULL,
`otherinfo` blob NOT NULL,
`date` date NOT NULL,
`hits` int(8) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM;
18.
Lugaro (27.05.2011 / 22:37)
У тебя тип поля title => blob и FULLTEXT там не будет работать, он только для CHAR, VARCHAR и TEXT
19.
ШЕДЕВР (28.05.2011 / 13:52)
18, ща поменяю тип. и он начнет работать? а varbinary не пойдёт?
URL:
https://visavi.net/topics/21890