На моем сайте я позволяю пользователям выбирать то, что им нравится или что им интересно. Это делается с помощью предварительно определенного выпадающего меню, поэтому каждый раз, когда пользователь входит на сайт, он получает список пользователей, которые имеют те же интересы, что и их.
Это делается путем подбора интересов вошедшего в систему пользователя (хранение в БД) и сопоставления с другим пользователем на сайте с использованием предложения MySQL WHERE. Но у меня возникли проблемы с тем, как показать процент или оценку рядом с каждым пользователем, чтобы показать, насколько близко они соответствуют заинтересованности зарегистрированного пользователя.
Например:
- user1 -- 60% соответствуют вашим интересам
- user1 -- 30% соответствуют вашим интересам
- user2 -- 20% соответствуют вашим интересам
У каждого пользователя есть 5 разных интересов, если все совпадают, чем на 100%.
Пример структуры таблицы:
CREATE TABLE IF NOT EXISTS `helloworld` (
`id` int(9) NOT NULL AUTO_INCREMENT,
`like1` varchar(300) NOT NULL,
`like2` varchar(300) NOT NULL,
`like3` varchar(300) NOT NULL,
`name` varchar(300) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
пример запроса:
SELECT * FROM helloworld WHERE like1='football' AND like2='art'
Я думал использовать функцию COUNT
, но я не уверен? или я должен использовать подзапросы?
РЕДАКТИРОВАТЬ: я использую PHP для языка на стороне сервера. пользователь НЕ может печатать свои собственные лайки, должен использовать предварительно определенный список.