私は現在、各メンバーが調査にアクセスするために使用する固有のリンクを取得するメンバー調査を作成しています。アクセスして調査を送信すると、リンクを使用できなくなります。これが私がこれまでに持っているものです:
<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 が既に送信されているかどうかを確認します。現在、「IF」部分を渡すため有効なメンバー ID が URL に投稿されていれば機能しますが、IF 部分が渡されない場合はクエリが実行されないため、私の .recordcount ソリューションは機能しません。これを修正するためにできることはありますか?