#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);