God kväll! <code> Imo har du gjort ett dumt sätt att registrera röster. En röst borde ha en egen post i tabellen. Lättare att hantera då tycker jag. Tack för svaren Det ser ju bra ut när jag nu bara tittat på kodförslagen. Då har jag lite att göra nu i helgen:) Jag får meddelandet Jonas Boman allvotes=Split(left(RS(0),len(RS(0))-1),"|")Uppdatera recordset
Jag tänkte ha en röstningsfunktion på min sida, min fundering är hur jag uppdaterar databasen.
Röstar jag, så skrivs siffran 1-5(beroende på vad jag röstat) följt av en sepparator (|). Tanken är att när nästa röstar så skall det fyllas i efter | tecknet. Men hur gör jag uppdateringen till detta? eller måste jag först skriva ut hela recordsetet i en hidden textruta och addera det när jag röstar?. När det sedan är en massa siffror mellan | hur gör jag för att ta ut siffrorna och sedan göra ett genomsnitt av dessa?.
Ex
I access (tabell object) (kollum vote] ser det ut som följer med 3 st som röstat
5|3|3|
Snittet på ovanstående bli 3,6 hur gör jag uträkningen av detta?.
Hoppas ni förstår min(a) frågor
Som jag nu har updateringen ser den ut så här.
<code>
objectID = Request.form("ID")
vote = Request.form("vote")
separat = ("|")
sql = "update Objects set vote = '"& vote & "''"& separat &"' where objectID = '"& objectid & "'"
</code>
Mvh JockeSv: Uppdatera recordset
sql = "update Objects set vote = vote & '" & vote & "' where objectID = '" & objectid & "'"
</code>
Sen för att få ut ett genomsnitt så får du kanske använda dig utav split() sen loopa igenom den array du får. Hur du gör det kan jag tyvärr inte hjälpa med. Men det är ett tips på vägen! Sv:Uppdatera recordset
Men för att lösa det på ditt sätt:
<%
Set RS= Conn.Execute("SELECT vote FROM Objects where objectID = '" & objectid & "'")
allvotes=Split(left(RS(0),len(RS(0))-1),"|") 'Splitar och tar bort den sista |-tecknet i raden
votecount=ubound(allvotes)+1 ' Räknar antalet röster
totalpoints=0
for i=0 to ubound(allvotes)
totalpoints=totalpoints+allvotes(i)
Next
avrpoint= formatnumber((totalpoints/votecount),1) 'genomsnittspoäng där "1" står för antalet decimaler
%>
Sv: Uppdatera recordset
Och ni får också ha en bra helg
//JockeSv:Uppdatera recordset
Microsoft VBScript runtime error '800a01a8'
Object required: ''
<code>
sql = ("SELECT vote FROM Objects where objectID = " & objectID & "")
Set rs = Conn.Execute(sql) <---denna rad visar felmeddelandet
response.write sql
</code>
Jag löste det till slut, men jag har andra bekymmer med koden som jag återkommer med
//jockeSv: Uppdatera recordset
Jag får felmeddelande
Microsoft VBScript runtime error '800a005e'
Invalid use of Null
På följande kod rad
allvotes=Split(left(RS(0),len(RS(0))-1),"|") 'Splitar och tar bort den sista |-tecknet i raden
Left börjar från vänster sen då?
Len räknar antal tecken?
själva principen av kodsnutten fattar jag inte, vad innebär (0)?
Snälla någon som kan förklara, eller skriva ner vad felet kan vara.
Tack på förhand
//JockeSv:Uppdatera recordset
den raden tar votes från databasen ( RS(0) står för att den hämtar första fältet ut tabellen. RS(0) kan ersättas med RS("votes")
Det verkar som det inte är någon träff på SQLen därav felmeddelandet.
Felsök där.