2011-07-06 3 views

답변

-2

<cfquery name="qUpdate" datasource="datasourcename"> 
Update TShirt_port set option#form.selectedOption# = option#form.selectedOption# + 1 
</cfquery> 
+3

쿼리에서 form/url 변수를 직접 사용하지 않고 queryparams는 어떻게됩니까? – Lucas

1

데이터베이스는 옵션 1, 옵션 2 하나 개의 기록을 가지고 ...

옵션 3을 이름 selectedOption와 형태 변수로 제공됩니다 및 쿼리 아래 시도

가장 큰 문제는 테이블 구조입니다. 옵션을 행 (열이 아닌)에 저장하면 데이터를 조작하는 것이 훨씬 쉬워집니다. (필요한 경우 또는 합계를 표시)

RecordID | OptionName | TotalVotes 
    1  | T-Shirt 1 | 0 
    2  | T-Shirt 2 | 0 
    3  | T-Shirt 3 | 0 
    .... 
    5  | T-Shirt 5 | 0 

그런 다음 양식을 채우기 위해 SELECT 쿼리의 결과를 사용 :

아주 간단한 테이블의 경우, 0 투표로 초기화 된 별도의 행으로 각 옵션을 삽입
<cfoutput query="poll"> 
    <input type="radio" name="TshirtOption" value="#RecordID#"> #OptionName# 
    ... 
</cfoutput> 

양식이 제출되면 선택한 옵션의 총 투표 수를 증가시킵니다. 물론 유효성 검사를 추가하십시오.

<cfquery name="updateVote" datasource="fiteastpoll"> 
    UPDATE Tshirt_poll 
    SET  TotalVotes = TotalVotes + 1 
    WHERE RecordID = <cfqueryparam value="#form.TshirtOption#" cfsqltype="cf_sql_integer"> 
</cfquery>