将 Coldfusion 查询结果传递给 Form

时间:2020-12-28 22:52:54

标签: forms coldfusion coldfusion-10 cfquery cfform

我有两个 Coldfusion 模板(getdata.cfmgenerate.cfm)。除了其他任务之外,第一个模板 getdata.cfm 将通过查询从数据库中检索。它将准确检索 16 行数据,每行将有 8 个字段。比如这个:

<cfquery datasource="xyz name="lista">
SELECT n1,n2,n3,n4,n5,n6,n7,n8
FROM atable
WHERE product = "abc"
ORDER BY date DESC LIMIT 16
</cfquery>

第二个模板将生成一些随机数并将它们与这 16 行进行比较。第二个模板上有一个刷新按钮来重新生成数字。这就是我希望它工作的方式。

然而,现在它工作的唯一方法是在第二个模板中使用数据库 <cfquery>generate.cfm 这意味着每次我按下刷新,它都会访问数据库,检索相同的每次 16 行,并生成随机数。这并不理想。因为这 16 行是相同的,所以每次生成一组新的随机数时检索它们是没有意义的。最好在第一个模板中获取一次,然后以某种方式将它们传递给第二个模板。 16 组数字需要一直显示在屏幕上。需要显示匹配和不匹配的数字。

如何将整个查询结果从第一个模板传递到第二个模板,而不必通过表单作为表单字段将 16 条记录作为 16 个列表传递?这甚至可能吗?提前致谢。

1 个答案:

答案 0 :(得分:0)

  • 生成一组随机数。
  • 将这些数字与一组静态数据进行比较。
  • 重复。

是否需要在应用程序 (CFML) 代码中进行比较?您能否在单个请求中生成一组随机数并将它们作为查询的一部分发送到数据库?这样,您就可以从数据库中获取与您的一组数字相匹配的记录,而不是全部 16 个。

然后每次刷新都会向数据库发送一组新的随机数,只返回相关数据。

或者,您可以将 cfquerycachedWithin 属性结合使用,以便在刷新随机数字集的同时将查询结果存储到内存中一段特定的时间。

https://cfdocs.org/cfquery

相关问题