webForumDet fria alternativet

Får inte request.querystring att funka korrekt?

ASP

5 svar · 310 visningar · startad av goovie

Medlem sedan juni 200440 inlägg
Frågan#1

jag försöker koda en egen omröstning men jag får problem när jag ska uppdatera rösterna. jag vet inte riktigt vad felet e inget felmeddelande kommer upp. jag tror att det e någonting med request.querystringen, därför stoppade jag det som rubrik.

vet någon hur jag kan fixa det?

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("poll.mdb")

Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM fraga order by id Desc"
rs.Open Addera, Connect, 3, 3

Do Until rs.EOF
totala = rs("TotalaRoster")
oid = rs("ID")
Response.write rs("fraga")
rs.movenext
loop
rs.close

Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM alt WHERE PollID = "&oid&""
rs.Open Addera, Connect, 3, 3

Do Until rs.EOF%>
        </strong></p>
      <p><a href="poll.asp?id=<%=rs("ID")%>">
        <%=rs("alt")%>
        </a><br>
        <%=rs("Roster")%>

<%
if request.QueryString("id") = rs("ID") then

Set rs2 = Server.CreateObject("ADODB.Recordset")
visa = "select * FROM alt where ID='"&request.QueryString("id")&"'"
rs2.Open visa, Connect, 3, 3

rs2("Roster") = rs2("Roster")+1

Response.Redirect "upd.asp"
end if
rs.movenext
loop

rs.close%>

Hoppas någon vet :e

Medlem sedan aug. 2002733 inlägg
#2

antar att du vill uppdatera roster med 1?

Ersätt denna kod med följande:

Set rs2 = Server.CreateObject("ADODB.Recordset")
visa = "select * FROM alt where ID='"&request.QueryString("id")&"'"
rs2.Open visa, Connect, 3, 3

rs2("Roster") = rs2("Roster")+1

Ny kod:

Set rs2 = Server.CreateObject("ADODB.Recordset")
visa = "UPDATE alt SET Roster = Roster + 1 where ID='"&request.QueryString("id")&"'"
rs2.Open visa, Connect, 3, 3
Medlem sedan aug. 2002733 inlägg
#3

sedan kan du ta bort ' runt querystringen id!

Medlem sedan apr. 200333 inlägg
#4

vid en snabb överblick av scriptet förstår jag mig inte riktigt på det.

goovie skrev:

Do Until rs.EOF
totala = rs("TotalaRoster")
oid = rs("ID")
Response.write rs("fraga")
rs.movenext
loop

använder du "totala" och "oid" på fler ställen senare i scriptet? eftersom dom ändras hela tiden tills rs kommer till sista posten

/MAge

Medlem sedan apr. 200333 inlägg
#5

Hade jag gjort ett röstningsscript hade jag nog gjort nåt sånt här

<%
  Dim Con, RS, strSQL, arrData

  Set Con = Server.CreateObject("ADODB.Connection")
  Con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath("poll.mdb")

'-- If-sats ifall nån röstar
  If Not Request.QueryString("rostarpa") = "" Then
    strSQL = "UPDATE fraga SET totalaroster = totalaroster + 1 WHERE ID = " & Request.QueryString("id")
    Con.Execute(strSQL),,128
    strSQL = "UPDATE alt SET roster = roster + 1 WHERE ID = " & Request.QueryString("rostarpa")
    Con.Execute(strSQL),,128
  End If
'--

  strSQL = "SELECT TOP 1 fraga.ID, fraga.fraga, fraga.totalaroster, alt.alt, alt.roster, alt.ID " &_ 
           "FROM fraga " &_ 
           "LEFT JOIN alt ON alt.fragaID = fraga.ID" & " " &_ 
           "ORDER BY fraga.ID DESC"

  Set RS = Con.Execute(strSQL)

  arrData = RS.getRows()

  Con.Close : Set Con = Nothing
  Set RS = Nothing
%>

<table>
  <tr>
   <td colspan="2"><%=arrData(1,0)%></td>
  </tr>
<%
  Response.Write(vbCrLf)
  Response.Write("  <tr>" & vbCrLf)'

  Dim i
  For i = 0 To UBound(arrData,2)
    Response.Write("   <td><a href='?id=" & arrData(0,i) & "&rostarpa=" & arrData(5,i) & "'>" & arrData(3,i) & "</a></td>" & vbCrLf & "   <td>" & arrData(4,i) & "</td>" & vbCrLf)
    Response.Write("  </tr><tr>" & vbCrLf)
  Next

  Response.Write("  </tr>" & vbCrLf)
  Response.Write("  <tr>" & vbCrLf)
  Response.Write("    <td>Totalt antal röster:</td>" & vbCrLf & "    <td>" & arrData(2,0) & "</td>" & vbCrLf)
  Response.Write("  </tr>" & vbCrLf)
  
  Erase arrData
%>
</table>

vilket get utskriften

 __________________________
|                          |
| Är kor aliens?           |
|__________________________|
|                      |   |
| _ja_                 | 2 |
|______________________|___|
|                      |   |
| _nej_                | 1 |
|______________________|___|
|                      |   |
| Totalt antal röster: | 3 |
|______________________|___|

Detta ger dock ingen kontroll över ifall personen i fråga spamar in röster

edit.
Ser att jag läste för fort och kodade efter vad jag trodde jag läste x(

Nu plockar jag bara ut 1 fråga och dess tillhörande svarsalternativ. Vill man kunna lista alla gamla frågor med sina svarsalternativ kan det bli lite trixit. Har inget bra tillvägagångssätt just nu då jag jobbar, så kan inte testa mig fram.

/MAge

Medlem sedan juni 200440 inlägg
#6

det löste sig, tack

271 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)