0
我正在嘗試執行與用戶輸入的表單數據匹配我的trans_location列的查詢。我有一個讓用戶選擇多個位置的下拉菜單。當他們選擇多個時,它會在每個位置之間放置逗號。當我只選擇一個位置時,結果會返回正確的位置。但是,當我選擇多個位置時,它找不到任何位置。逗號是否只有一個名稱,它不會搜索每個位置?使用由用戶輸入的表單變量的CF查詢
<cfset result = {} />
<cftry>
<cfset date1 = #CREATEODBCDATETIME(form.StartDate & '00:00:00')#>
<cfset date2 = #CREATEODBCDATETIME(form.EndDate & '23:59:59')#>
<cfquery datasource="#application.dsn#" name="GetLocationInfo">
SELECT *
FROM cl_checklists
WHERE date >= #date1# AND date <= #date2#
AND trans_location = '#form.Location#'
</cfquery>
<cfoutput>#date1#</cfoutput>
<cfoutput>#date2#</cfoutput>
<cfdump var="#GetLocationInfo#">
<cfcatch type="any">
<cfset result.error = CFCATCH.message >
<cfset result.detail = CFCATCH.detail >
</cfcatch>
</cftry>
我也試着做這樣的事情:
AND trans_location = <cfqueryparam value='#form.Location#' />
與你的問題沒有關係,但我發現選擇控件可以讓多個選擇真的很容易搞砸。你可能會考慮複選框。 –
注意,如果您需要在整個日期進行過濾,則正確的比較是'WHERE Col> = {startDateAtMidnight} AND Col <{dayAfterEndDateAtMidnight}']。有關更多詳細信息和正確的cf_sql_type,請參閱[本主題](http://stackoverflow.com/a/27062906/104223)。 – Leigh