test
및 user_test
이라는 데이터베이스에 사용자 그룹과 사용자 테이블을 만들었습니다. 모든 사용자는 적어도 하나의 숫자를 포함하지만 1,2,3
과 같이 여러 개의 숫자를 포함 할 수있는 groups
이라는 필드를 가지고 있습니다. 사용자 그룹 테이블은 id
및 group_name
입니다.PHP - 숫자/쉼표로 여러 행 검색
내가 지금까지 해왔 던 것은이 사용자가 할당 된 모든 그룹의 데이터를 가져 오는 것입니다. 예를 들어, 한 사용자가 그룹 1,2,3
(데이터베이스에 표시된대로)에 할당 된 경우 해당 사용자는 해당 ID로 각 그룹의 이름을 인쇄합니다. 그래서 아마 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