webForumDet fria alternativet

Va trött jag blir - Skala

ASP

8 svar · 312 visningar · startad av skalleper

Medlem sedan feb. 200245 inlägg
Frågan#1

Hejsan.. Jag skulle fortfarande vilja ha hjälp med mitt röstnings system. Jag vill ha så att man ska kunna rösta på en medlem..
En skala på 1 till 10.

Hur går man till väga för det...
Jag har 2 tabeller..

Roster & Antal

Hur går jag tillväga för att räkna ut röstresultatet..

det skalla vara 1 till 10 och 2 decimaler.

Medlem sedan mars 20015 287 inlägg
#2

Kanske något sånt här:

snitt = roster/antal
snitt = FormatNumber(snitt, 2, -1, 0, 0)

eller vad är det egentligen som strular?

Medlem sedan mars 20014 214 inlägg
#3

Det borde väl vara ganska enkelt.

I ena tabellen har du alla medlemmer, och något specifikt som identifierar dem, tex räknar IDn som alltid finns.

I andra har du rösterna och lägger in namn på den som röstat, poäng och ett fält som kopplar röstningen till ett ID fält (en medlem) i andra tabellen.

Därefter frågar du bara efter alla röster, till den medlemmen genom att använda ett Where utryck med ID från medlemmen i SQL frågan.

Medlem sedan mars 20015 287 inlägg
#4

För sjutton gubbar...

Ett ihopslängt script, kanske inte helt optimerat, slumpfunktionen verkar vara något tvivelaktig, men hur som helst lite vägledning kanske det kan ge.

<%
'solbulles lilla röstningscript.

strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("minpoll.mdb")

	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open strConnString 
	Set RS=Server.CreateObject("ADODB.Recordset")
	
person = Request.Form("person")
id = Request.Form("id")
poang = Request.Form("radiobutton")

If poang <> "" AND id <> "" then 
response.write "Du gav <b>" & person & " " & poang & "</b> poäng.<p>"

strSQL="UPDATE poll SET roster = roster + 1 , betyg = betyg + " & poang & " WHERE ID = " & id

connect.execute strsql,,128
End If
	
'Slumpa fram från databasen, verkar vara en tvivelaktig metod!?!

strSQL = "Select person, id, betyg, roster from poll"
   
   Set RS = Connect.Execute(strSQL)
   If RS.EOF Then
      Response.Write "Det finns inga personer"
   Else
      arrPersoner = RS.GetRows()
      Randomize
	  
	  vem = Round(Rnd*Ubound(arrPersoner,2))

		id = arrPersoner(1,vem)
		person = arrPersoner(0,vem)
		
   End If

Set RS = nothing
Connect.Close
Set Connect = nothing	

response.write "Nu kan du rösta på <b>" & person & "</b><br>"

Response.write "<form name=""form1"" method=""post"" action=""minpoll1.asp"">"
For i = 1 to 10
Response.write "<input type=""radio"" name=""radiobutton"" value=" & i &" onclick=""submit('this.form')"">" & i & vbcrlf
Next
response.write "<input type=""hidden"" name=""id"" value=" & id & ">"
response.write "<input type=""hidden"" name=""person"" value=" & person & ">"
response.write "</form><p>"

response.write "Så här är ställningen i nuläget:"

If IsArray(arrPersoner) Then

response.write "<table width=""50%"" border=""0"" cellspacing=""2"" cellpadding=""2"">"
response.write "<tr><td>Namn</td><td>Antal r&ouml;ster</td><td>Totalt betyg</td><td>Snittbetyg</td></tr>"
  
	For I = 0 TO UBound(arrPersoner,2)
		person = arrPersoner(0,I)
		id = arrPersoner(1,I)
		betyg = arrPersoner(2,I)
		roster = arrPersoner(3,I)
		
		If betyg > 0 AND roster > 0 then
		snitt = betyg/roster 
snitt = FormatNumber(snitt, 2, -1, 0, 0)
End If

response.write "<tr><td>" & person & "</td><td>" & roster & "</td><td>" & betyg & "</td><td>" & snitt & "</td></tr>"

	Next
response.write "</table>"
Else
	Response.Write "Inget hittades."
End If
%>

Databasen till detta:

id : autonummer
roster : nummer
betyg : numer
person : text

Medlem sedan feb. 200245 inlägg
#5

Cookies

Hur gör jag för att spärra så att man inte kan rösta på en flera gånger på samma dag...

Hade tänkt mig lägga en cookie där alla id sprara med ett , imellan..

fast jag vet inte hur jag hämta ut alla id sen..

Hade det varit SQL hade jag nog löst det

Medlem sedan feb. 200245 inlägg
#6

order by

Hur gör man för att sotera nu da?

FormatNumber funkar inte i SQL verkar det som hehe

Medlem sedan mars 20015 287 inlägg
#7

Inte för att jag vet om du använder något av det jag postade, men detta borde väl funka ihop med det i alla fall:

strSQL = "Select person, id, betyg, roster from poll order by betyg/roster desc"

Medlem sedan feb. 200245 inlägg
#8

FEl

Den sortera fel när man man tar roster/antal

den sortera efter heltal typ.. sen decimalerna går den inte efter

Medlem sedan mars 20015 287 inlägg
#9

När jag kör det script jag postade tidigare med denna sql:

strSQL = "Select person, id, betyg, roster from poll order by betyg/roster desc"

Så tycker jag nog att det blir rätt.....?

267 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)