test
とuser_test
という名前の私のデータベースにユーザーグループとユーザーテーブルを作成しました。すべてのユーザは、少なくとも1つの数字をカウントするgroups
というフィールドを持っていますが、複数の数字を含むこともできます(たとえば、1,2,3
)。ユーザーグループテーブルは、id
とgroup_name
の存在します。PHP - 数値/コンマで複数の行を検索中
これまで私がやってきたことは、このユーザーが割り当てられているすべてのグループからデータを取得することです。たとえば、1人のユーザがグループ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"];
}
このタスクを実行する方法が他にもある場合は、お気軽にお見せください!私はこの作業を(できるだけ効率的に)行う方法を学ぶだけです。
データベーススキーマを変更できますか? 1つの列に複数の値を格納すると、ほとんど常に頭痛が発生します。 – Chris
@Chrisいいえ、申し訳ありません。私はこのようにこれを行う方法を知りたい。 –
スキーマを正規化します。自分自身を痛みの世界で救う。 – Strawberry