0

我有两个 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 个列表作为表单字段传递?这甚至可能吗?提前致谢。

4

1 回答 1

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

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

然后每次刷新都会将新的随机数集发送到数据库,只返回相关数据。

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

https://cfdocs.org/cfquery

于 2020-12-28T23:24:58.597 回答