Во-первых, если вы не собираетесь добавлять дополнительные элементы в структуру, я бы сказал, что наличие структуры для хранения ProductID кажется чрезмерным.Я бы просто имел массив с productID в качестве каждого элемента, без структуры.
Таким образом, ваш массив структурирован как:
[
{ ProductID= 4 },
{ ProductID= 5 },
...
]
Я бы предложил вам просто сделать:
[4,5]
Это облегчит следующий шаг.Прямо сейчас я бы сказал, что вам нужно перебрать массив, добавив каждый productID в список, который вы затем сможете использовать в своем запросе.Затем измените исходный запрос, чтобы использовать этот список (запомните и используйте cfqueryparam).
<cfset lstIDs = "">
<cfloop index="productStruct" array="#productsArray#">
<cfset lstIDs = listAppend(lstIDs, productStruct.ProductID)>
</cfloop>
<cfquery name="getRecent" datasource="#application.dsn#">
SELECT uid_product,txt_product_name
FROM tbl_products
WHERE productID IN <cfqueryparam value="#lstIDs#" cfsqltype="CF_SQL_INTEGER" list="yes">
</cfquery>
Или, если вы упростите свой массив, просто сделайте ArrayToList для достижения того же самого.
<cfquery name="getRecent" datasource="#application.dsn#">
SELECT uid_product,txt_product_name
FROM tbl_products
WHERE productID IN <cfqueryparam value="#ArrayToList(productsArray)#" cfsqltype="CF_SQL_INTEGER" list="yes">
</cfquery>