<!--- sample data --->
<cfset getLanguages = queryNew("")>
<cfset queryAddColumn(getLanguages, "languages_id", listToArray("1,2,3,4"))>
<cfset FORM.Ingredients_1 = "">
<cfset FORM.Ingredients_2 = "foo"& chr(13) & "bar">
<cfset FORM.Ingredients_3 = "">
<cfset FORM.Ingredients_4 = "foo"& chr(13) & "bar"& chr(13) & "qax">
<cfset languageTotals = {}>
<cfoutput query="getLanguages">
<ul class="bdesc">
<cfif len(trim(form['Ingredients_' & languages_id]))>
<cfset text = replace(trim(form['Ingredients_' & languages_id]),Chr(13),'^', 'all')>
<cfset total = 0>
<cfloop list="#text#" index="i" delimiters="^">
<cfset total = total+ 1>
<li>#trim(i)#</li>
</cfloop>
<cfset languageTotals[languages_id] = total>
<li><strong>items:</strong> #languageTotals[languages_id]#</li>
</cfif>
</ul>
</cfoutput>
<!--- compare all --->
<cfloop collection="#languageTotals#" item="id">
<cfoutput>
total for languages_id[#id#] = #languageTotals[id]#<br>
</cfoutput>
</cfloop>
query.
Here is a outline of the code,
1. Use QueryNew() to define the query structure.
<cfset lqry=
2. Loop over the form field names and add to query. Use QueryAddRow() and QuerySetCell()
3. One you have your new query structure populated, you can count.
Here is code, (not tested )
<!--- Define Query --->
<cfset myQuery = QueryNew("fieldname, fieldvalue", "VarChar, varchar")>
<!--- Start Populating --->
<cfloop list="#form.fieldnames#" index="fld">
<cfset tt= QueryAddRow(MyQuery, 1)/>
<cfset tt= QuerySetCell(myQuery, "fieldname", #fld#)/>
<cfset tt= QuerySetCell(myQuery, "fieldvalue", form[#fld#])/>
</cfloop>
<!--- get the field count --->
<cfloop query="getlanguages">
<cfquery name="group_by" dbtype="query">
SELECT fieldname AS x, count(fieldname) as fieldCnt
FROM myquery
WHERE fieldname like 'Ingredients_' & #getLanguages.language_id
GROUP BY fieldname
</cfquery>
<cfoutput><br/>#group_by.f
</cfloop>