我目前正在构建一个成员调查,每个成员都会获得一个他们用来访问调查的唯一链接。一旦他们访问并提交调查,他们就不能再使用该链接。这是我到目前为止所拥有的:
<cfquery name="SurveyTaken" maxrows="1" datasource="#APPLICATION.DATASOURCE#">
IF EXISTS (SELECT 1 FROM AllMembers WHERE me_number = <cfqueryparam value="#URL.em#" cfsqltype="cf_sql_char">)
SELECT * FROM MemberSurvey
WHERE me_number = <cfqueryparam value="#URL.em#" cfsqltype="cf_sql_char">
</cfquery>
<cfif SurveyTaken.recordcount eq 1>
<p>We are sorry but it seems that you have already taken the survey. This link has been used and is no longer valid.</p>
<cfelseif SurveyTaken.recordcount eq 0>
<cfquery name="SurveyIndividual" maxrows="1" datasource="#APPLICATION.DATASOURCE#">
SELECT *
FROM AllMembers
WHERE me_number = <cfqueryparam value="#URL.em#" cfsqltype="cf_sql_char">
</cfquery>
<cfform action="" method="post" id="addCommentForm" onsubmit="return submit_form()">
.... etc...
</cfif>
基本上,我希望我的 SQL 查询首先检查成员 ID 是否有效,然后在另一个表中检查成员 ID 是否已经提交。现在,如果在 URL 中发布了有效的成员 ID,则它可以工作,因为它通过了“IF”部分,但如果 IF 部分没有通过,则不会运行任何查询,因此我的 .recordcount 解决方案不起作用。我能做些什么来解决这个问题吗?