我試圖改變包含用戶角色的用戶面板的某些代碼。我希望某些角色能夠顯示用戶所在的每個角色,但某些角色我只希望他們顯示一次。
用於此的MySQL表是:
id | username | password | displaygroup | usergroups
1 | User A | Pass A | 2 | 1,2,3
2 | User B | Pass B | 5 | 1,2,3,4,5
例如,如果用戶A是在組1,2和3,它們應當爲每個組中列出三次他們的一部分。一旦用戶在一個更高的組中,比如用戶B,我只希望他們在最高組中顯示一次。
正在使用的舊的查詢是:
$query = $db->query("SELECT * FROM users WHERE displaygroup = '2' ORDER BY id");
while ($array = $db->assoc($query)) {
echo $array['username'];
}
隨着該查詢,用戶A將只顯示一次。
我曾嘗試以下:
$query = $db->query("SELECT * FROM users ORDER BY id");
while ($array = $db->assoc($query)) {
$role = explode(',', $array['usergroups']);
foreach ($role as $value) {
if ($value == 1) {
echo $array['username'];
}
if ($value == 2) {
echo $array['username'];
}
}
}
通過上述,它爲用戶A完全沒有問題,因爲它顯示了他們對組1,2和3,他們是在
。但是,用戶B現在正在出現,因爲他們也在這些角色中。
我該如何獲得它,以便用戶A繼續顯示組1,2和3,並且用戶B僅顯示組5?
UPDATE
似乎是我的問題混淆。我非常想要它做的:
組1
用戶A
組2
用戶A
組3
用戶A
集團4
5族
用戶B
你能再次解釋一下,用戶B如何顯示一次而不是5次? –
嗨Umashankar,我想要它,所以如果用戶在一個高於3的組中,它只會列出他們的最高組的一次,在這種情況下,用戶B是5.我不希望用戶B列在組1,2 ,3或4.如果用戶位於小於4的組中,我希望他們每次列出,在這種情況下,用戶A是1,2和3.我希望用戶A列在組1,2和3下,但不是4和5。 –
你在你的問題中說,「但某些角色我只希望他們顯示一次」。他們一次只能顯示哪些具體角色? –