Hmmm...sitter och funderar på om man ska ha så att medlemmar kan rösta på varann...? men hur till en början gör man en röstning... och får ut genomsnitt i röster... så det står:
Kalle: 3.47 poäng... och ligger därför på 25 plats..osv...
mm... men asså, hur ska jag göra för att dividera... ??? liksom har tänkt att ha det så här: man klickar på typ radio button el dyl.. sedan till en sida som tar hand om rösten (läggs in i db:n osv..) detta är inget svårt.. men typ hur gör man te x så att man kan se i en topplista...
47 % av medlemmarna röstar på att kalle är snyggast... så vill jag ha det..?? men hur blir då sql-satsen som hämtar dessa resultat i %? säg då att röst fältet i db:n heter... privataroster
sidan topplistan.asp ska man kunna se en listning av alla medlemmar. Vid varje namn på en medlem står det HUR många röster personen fått + hur många procent av alla som röstar som just går till den personen.
info.asp är sidan man kommer till för att läsa info om den person man vill läsa om. Där ska det stå hur många röste te x Kalle fått + hur många procent av alla som röstar som har röstat på just honom.
Det första borde du kunna lösa med det jag har skrivit innan...(Även att SQL satserna kanske inte är exakt)...
Det andra kan ju bli lite klurigare då måste du ju spara någonstans vem det är som rösta(johan kan ju rösta på 5 st)
Men har är ju fortfarande bara en som röstat
Där ska det stå hur många röste te x Kalle fått + hur många procent av alla som röstar som har röstat på just honom.
kolla här nu. Jag har försökt att börja på min röstare.. Man ska kunna välja mellan 1-5 i alternativ (formulär innan denna kod som kommer nedan) Allt funkar, men... När man te x söker på en person, säg Kalle så kommer man till lite info om honom + en länk där man kan få mer info.. typ den ser ut såhär:
(den ligger i Response.Write)
iaf, då kommer man till sidan info.asp som då hämtar den info som tillhör kalle.. på info.asp ligger då det röstningsformulär..med radiobuttons 1-5.. action: rostat.asp. Sedan rostat.asp lägger in rösten.. men inte just för kalle utan för alla... hur gör jag INSERT:en för att då man röstar så ska det enbart läggas på kalle ingen annan.
<%
Set Databas = Server.CreateObject("ADODB.Connection")
Set RecSet = Server.Createobject("ADODB.Recordset")
MdbFilePath = Server.MapPath("rosta.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath & ";"
SQL = "SELECT * FROM alternativ"
RecSet.Open SQL, Databas, adOpenStatic, adLockOptimistic
%>
<%
If Request.Form("knapp") = "1" Then
Y = RecSet("AltEtt")
RecSet("AltEtt") = Y -- 1
RecSet.Update
ElseIf Request.Form("knapp") = "2" Then
Y = RecSet("AltTva")
RecSet("AltTva") = Y -- 1
RecSet.Update
ElseIf Request.Form("knapp") = "3" Then
Y = RecSet("AltTre")
RecSet("AltTre") = Y -- 1
RecSet.Update
ElseIf Request.Form("knapp") = "4" Then
Y = RecSet("AltFyra")
RecSet("AltFyra") = Y -- 1
RecSet.Update
ElseIf Request.Form("knapp") = "5" Then
Y = RecSet("AltFem")
RecSet("AltFem") = Y -- 1
RecSet.Update
End If
%>
p.s. är det någon som har en finare "uppläggning" av min kod?
SQL = "SELECT * FROM alternativ Where UserName = '"&Request.Form("UserName")&"'"
Givetvis har du skickat med användarnamnet i ditt formulär också... :)
------------------ Budweiser - Slightly contaminated water... probably harmless, but I would recommend boiling before you drink it... webEye.nuSweQuake.com
Jag märkte att du använde ett recordset för att lägga till poster (Gud förbjude), så jag ändrade mitt inlägg ovan så att det skulle fungera utan övriga tillägg... :)
------------------ Budweiser - Slightly contaminated water... probably harmless, but I would recommend boiling before you drink it... webEye.nuSweQuake.com
ok,
på info sidan så får du fram totalt antal röster på detta sätt:
SELECT SUM(AntalRoster) As TotRoster FROM Roster"
Set objRS = objConn.Execute(strSQL)
intTotRoster = objRS("TotRoster")
objRS.Close
Set objRS = Nothing
Du får ändra så att objConn har samma namn som ditt conn-object.
Sedan när du listar ut alla medlemmar på infosidan så hämtar du ju ut hur många röster varje medlem har.
Ta det och dela med intTotRoster.
Sedan är det bara att ta den siffran * 100 så får du hur många procent som har röstat på just den medlemmen.
cya,
PatrikB
------------------
*Det jämnar ut sig sa han som sket i byxan och satte sig ned*
ADODB.Field error '800a0bcd'
Antingen är BOF eller EOF satt till True, eller så har aktuell post raderats; åtgärden som programmet begärt kräver en aktuell post.
/groda/rostat.asp, line 38
line 38:
Y = RecSet("AltFyra")
men asså, jag ändrade sql-satsen och la till fältet username i db:n... men ska jag inte ha ngt typ INSERT för formuläret username...??? har asså ett fält i formuläret vid namn username där en querystring ligger... med det username man läser info om... hmmm...hur får jag då själva inläggningen i db:n att lägga just den röst man valde på den man läser om...???? Kom igen! :e :e
har fått lite hjälp av Morph som tyckte jag skulle ändra IDG´s skript (såklart) men vi får inte rätt på det:
<%
Set Databas = Server.CreateObject("ADODB.Connection")
Set rsRosta = Server.Createobject("ADODB.Recordset")
MdbFilePath = Server.MapPath("rosta.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath & ";"
sql = "SELECT betyg, antalRoster FROM alternativ WHERE username='"& Request.Form("username") &"'"
Response.Write SQL
Set rsRosta = databas.execute (sql)
%>
<%
'##### sen lägger du på den senaste rösten #######
betyg = Cint(rsRosta("betyg")) + Cint(Request.Form("knapp"))
antalRoster = rsRosta("antalRoster") + 1
'###### sen trycker du in de nya värdena i databasen #######
sql = "UPDATE alternativ SET betyg="& betyg &", antalRoster="& antalRoster
Response.Write sql
Resoponse.Write rsRosta("betyg")
Resoponse.Write Request.Form("knapp")
Databas.Execute sql
%>
ngt som är skumt... får felmess (har skrivit ut sql med response.write):
SELECT betyg, antalRoster FROM alternativ WHERE username='*karin*' error '80020009'
Undantag inträffade.
/groda/rostat.asp, line 26