Я создал группу пользователей и таблицу пользователей в моей базе данных, которая называется test
и user_test
. У каждого пользователя есть поле groups
, которое содержит как минимум одно число, но может также содержать несколько номеров, например 1,2,3
. Таблица групп пользователей существует id
и group_name
.PHP - Поиск нескольких строк с числами/запятыми
То, что я так долго пытаюсь сделать, - получить данные от всех групп, которым назначен этот пользователь. Например, если одному пользователю назначены группы 1,2,3
(как показано в базе данных), он будет распечатывать имя каждой группы с этим идентификатором. Возможно, он распечатал group 1
group 2
group 3
.
$user_test = $this->mysqli->query("SELECT user_id,groups FROM user_test WHERE user_id = '1'");
while($user_test_fetch = $user_test->fetch_array()) {
$groups = $user_test_fetch["groups"];
}
if(strlen($groups) > 1) { // user has more than 1 group
// ???
} else { // user does not have more than 1 group
$search = "id = '".$groups . "'";
}
$group_data = $this->mysqli->query("SELECT * FROM test WHERE ".$search."");
while($group_data_fetch = $group_data->fetch_array()) {
echo $group_data_fetch["group_name"];
}
Или, если у вас есть какой-либо другой способ, вы сделали бы это задание, пожалуйста, не стесняйтесь показать мне! Я просто пытаюсь научиться, как выполнять эту задачу (желательно, насколько это возможно).
Можете ли вы изменить схему базы данных? Хранение нескольких значений в одном столбце почти всегда приводит к головным болям. – Chris
@ Chris Нет, извините. Я хочу знать, как это сделать. –
Нормализовать вашу схему. Спасите себе мир боли. – Strawberry