I have this query and i m am getting an extra OR after the AND clause and the search is failing
<cfset CountVar = 1>
<cfquery name="qFiltered">
SELECT id,name,email,useris,roleid
FROM users
WHERE 1=1
<cfif search NEQ "">
AND (
<cfloop list="#aColumnArray#" index="sSearch">
<cfif CountVar NEQ countOfColumns> OR </cfif>
#sSearch# LIKE <cfqueryparam value="%#search#%" cfsqltype="cf_sql_varchar" />
<cfset CountVar += 1>
</cfloop>
)
</cfif>
</cfquery>
Something is wrong in the counter where it is not validating the number of countofColumns
<cfset var countOfColumns = listLen(aColumnArray)>
How about this
<cfquery name="qFiltered">
SELECT id,name,email,useris,roleid
FROM users
WHERE 1 = 1
<cfif search NEQ "">
AND (
0 = 1
<cfloop list="#aColumnArray#" index="sSearch">
OR
[#sSearch#] LIKE <cfqueryparam value="%#search#%" cfsqltype="cf_sql_varchar" />
</cfloop>
)
</cfif>
</cfquery>