2017-03-09 31 views
1

要從數據庫填充下拉列表我使用這樣的簡單查詢。AND條件(從數組)

SELECT * 
FROM admin_users 
LEFT JOIN account ON account_id = user_account_id 
AND user_active = 1 

現在,我想填充在選項列表中有下拉只有用戶可以訪問「區域」

區域ID是連載於數據庫中,並獲得陣列我用

$bar = unserialize(base64_decode($user_areas)); 

現在,我喜歡當打開的頁面我只有用戶下拉比有權訪問區域。有一種方法可以直接從查詢過濾用戶?

SELECT * 
FROM admin_users 
LEFT JOIN account ON account_id = user_account_id 

>>>>> WHERE area_id IN ($foo) <<<< 

AND user_active = 1 
+0

你必須 – user1504222

+0

之前得到用戶列表不說,應該是一個SQL問題,而不是PHP?不確定在這裏跟隨? – maximedubois

回答

0

你要「破滅」你的數組$酒吧得到一個內聯串的ID,像這樣:

$bar = array(7, 9, 27, 44); // These numbers are Area IDs 

然後得到聯字符串與implode()功能:

$ inline = implode($ bar,',')

最後,連接在您的查詢中:

select ... 
>>>>> WHERE area_id IN ($inline) <<<< 
+0

如果你不想見到小鮑比表,不要忽視逃避。 – CBroe

0

使用subqueries

SELECT * 
FROM admin_users 
LEFT JOIN account ON account_id = user_account_id 
WHERE area_id IN (
    SELECT aria_id from `user_area_table` [where clause if needed] 
) 
AND user_active = 1