2012-08-15 76 views
0

我試圖讓用戶只能查看某些記錄,其中查詢變量是由用戶使用表單給出的。該表單包含一個日期選擇器和3個選擇元素,用戶可以選擇多個選項,允許的選項由SQL使用SELECT DISTINCT填充。獲取SQL使用選擇表單元素,逗號分隔

日期選擇工作,但SELECT列表只有在選擇一個值時才起作用。我覺得這個問題是由'結果'頁面上的錯誤SQL造成的。我不知道如何使SQL工作用逗號分隔的字符串(例如:用戶1,用戶2,用戶3等,這是我的SQL查詢:

SELECT * 
FROM exp_core 
WHERE `time` >= startdate 
AND `time` <= enddate 
AND user LIKE uservar 
AND type LIKE typevar 
AND trnsact LIKE trnsactvar 

uservartypevartrnsactvar是用逗號分隔的表單變量誰知道如何讓SQL把這些值作爲獨立的價值觀?

+0

這在MySQL中可完成,但很容易在PHP做。你使用的是PHP嗎?如果沒有,請查看:http:// stackove rml.com/questions/11691942/mysql-iterate-through-elements-of-a-split-string-and-do-things-with-them?lq=1 – mlishn 2012-08-15 13:13:45

回答

3

多個變量,你必須使用IN操作符。

SELECT * 
FROM exp_core 
WHERE `time` >= startdate 
AND `time` <= enddate 
AND user IN (uservar) 
AND type IN (typevar) 
AND trnsact IN (trnsactvar) 
+0

恐怕不起作用。它仍然顯示一切(或沒有)。 – 2012-08-15 19:05:45

+1

如果傳遞的值不是整數,則必須將每個值括在引號中。 – 2012-08-16 06:55:45