PHP-алгоритм для поиска людей с одинаковыми интересами

#php #mysql

#php #mysql

Вопрос:

В моем MySQL у меня есть Interests столбец, в котором хранятся интересы пользователя.Эта строка варьируется от простой Readng до Astronomy,Dancing,Engineering,Fashion,Iceskating,Music,Painting,Puzzles,Singing,Yoga,Gardening,Reading . Моя цель — найти людей, которые разделяют те же интересы, что и пользователь. Вот мой код

 $selhobbies=$con->query("SELECT Interests FROM user_opt WHERE Username='$NameId'");
$Users_hobbies=$selhobbies->fetch_row();
$query=$con->query("SELECT Username FROM user_opt WHERE Interests LIKE '%{$Users_hobbies[0]}%'") or die($con->error);
  

Теперь, если User_hobbies есть Reading,Music , он не найдет парня, чье хобби всего лишь Reading .Как я могу это исправить?

Комментарии:

1. Если вы хотите выполнить запрос, подобный этому, то исправьте свою структуру данных. Создайте таблицу с одним интересом для каждого пользователя в строке.

2. У меня 136 интересов @GordonLinoff

3. Итак, 136 строк. Отлично.

Ответ №1:

Я сделал это с помощью exploding User_hobbies вот так

 $explode=explode(',',$Users_hobbies[0]);
for ($i=0; $i <=$come_count; $i  ) { 
    $query.="UNION
             SELECT Username FROM user_opt WHERE Interests LIKE '%".$explode[$i]."%'";
}
$run=$con->query($query) or die($con->error);