Det är så att jag att jag fått låna ett betyg sättnings script (javaScript) där man kan betyg sätta musik genom att välja antalet tummar upp där max betyget är 7 tummar upp av sju möjliga. Problemet är att jag inte är någon höjdare när det gäller procent och skulle behöva lite hjälp med att få fram korrekt snitt betyg.
Man kan rösta tummar upp på följande:
* Hitfaktor.
* Utförande.
* Sound.
När man sätter betyg på dom 3 kategorerna så ändras snittbetyget automatiskt till snittet ur ovanstånde kategorier, också detta mellan 1 och 7 tummar upp.
Värderna som man får ut ur betygen (tummar upp):
tumme / värde
1 = 14
2 = 29
3 = 43
4 = 57
5 = 71
6 = 86
7 = 100
Någon som har något förslag hur jag ska spara in dom i databasen?
Alltså ska jag uppdatera värdet på raden där låten ligger eller ska jag spara in det i en annan tabell och lägga till en rad för varje röst?
Vilket blir lättast och kräver minst resurser när jag sedan ska hämta ut värderna på musik sidan där låten presenteras och framför allt hur gör jag för att få fram betyget i stjärnor dvs 1 till 7?
Jag gör så här att när jag skickar in min röst så ger 1:två, 2:fyra, 3:sex poäng upp till 5.
Summan av alla poäng läggs i kolumen summa_röster som sedan delas med antalet röster.
Vidare så har jag tio bilder men namnen vote_1, vote_2, vote_3 osv.
Dim voteresult
voteresult = round(arrRecSet("summa_röster")/arrRecSet("antal_röster"))
Response.write "<img src=""vote_"& voteresult &".gif"" title=""Betyg på denna artikel: "& formatnumber(voteresult/2,1) &" Antal röster: "& arrRecSet("antal_röster") &""" border=""0"">"
...
connect.execute("update news set antal_röster = antal_röster + 1, summa_röster=summa_röster + "& Request.Form("summa_röster") &" WHERE id = "& Request.Form("id")),,128
Men det står lite skrivet om detta sedan tidigare. Så sök lite kanske är en idé, om du inte redan gjort det. :)
Det som blir effektivast när du ska lista betygen är helt klart att du vid varje röst uppdaterar medelbetyget för låten. Du borde nog också spara antalet röster för att kunna uppdatera medelbetyget på rätt sätt. Så här borde formeln se ut:
Nytt medel = (gammalt medel * antalet röster + ny röst)/(antalet röster + 1)
Formeln för att räkna ut betyget utifrån procentsatsen borde vara:
Varför får jag unte fram snittbetyget ur dom 3 formulären med denna kod?
T.ex om jag röstar 4 tummar upp i formuläret så ska ju medlebetyget bli 4, men med denna uträkning så blir medelbeyget 9,33333333333333.
inn = Round((Request.Form("form_inn")/100)*7)
ut = Round((Request.Form("form_ut")/100)*7)
sound = Round((Request.Form("form_sound")/100)*7)
betyg = inn + ut + sound/3