Jag håller på med röstningsfunktion och man får rösta bara engång per användare. När man har röstat så vill jag få fram användarens medelbetyg men får felmeddelande istället.
Då har du säkert problemet där, rad 241 i koden du postade försöker ju att runda av VoteGrade/TotalVote om nån av dem inte är ett tal får du ju problem, jag gissar att det är det som är problemet.
/red Och det löser du ju genom att typkonvertera som Anders skrev.
(Idag får jag mitt nya "snabba" tangentbord o då ska jag minsann aldrig vara så långsam att nån hinner före mer... ;) )
När man betygsätter någon så är skalan 1-10. @nders som du sa använd CLng() så gör jag det.
Jag testa rösta på en person med tre konto. Satte betyg 10, 5, 1
Jag får ut:
TotalVote = 3 (Helt Rätt)
VoteGrade = 3 (Helt fel, ska få ut totala betyget t.ex. 10, 5, 1 = 16)
Sen dela och få medelbetyget.
skriv ut den färdiga sql-frågan som producerar votegrade.
det ser ut som att du bara räknar hur många gånger man röstat (med count) istället för att summera ett fält (med sum()).
skriv ut den färdiga sql-frågan som producerar votegrade.
det ser ut som att du bara räknar hur många gånger man röstat (med count) istället för att summera ett fält (med sum()).
Jag kollade igenom hans kod. Jag tror det är härifrån felet kommer. Felvärde, eller vad de nu var han fick för fel.
Set Count = ObjConn.Execute("Select count(*) From Votes where VoteGrade " & " and VoteToId="&CLng(Request.Querystring("UsrID"))&"")
Han sätter sen VoteGrade till
VoteGrade = CLng(Count(0))
Vilket resulterar i att han bara räknar antalet poster med VoteToId=UsrID
Kanske SQL satsen till
Set Count("Select SUM(VoteGrade) AS vgrade FROM Votes WHERE VoteToId="&CLng(Request.Querystring("UsrID")))
Det totalta röstpoängen måste väl var det som gör "vinnaren", så medelbetyget bör vara rätt tycker jag.
Sen kan du iofs för skojs skulle låta besökaren vända och vrida på siffrorna.
Har löst allt men får detta felet. Vet att denna inte tillhör denna tråden. Tyckte att det var onödigt och skapa ny tråd.
Får detta felet. Bilden visar felet.
<!-- #include file="Inc/Conn.asp" -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Language" content="sv">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="copyright" content="">
<title></title>
<link rel="stylesheet" href="" type="text/css">
</head>
<body>
<%
SQL = "Select * from TLUsers WHERE UsrID ="&SafeSQL(Session("UsrID"))&""
Set ObjRS= ObjConn.execute(SQL)
Function Age(datBorn)
Age = DateDiff("yyyy", datBorn, Date())
If (Month(Date()) < Month(datBorn)) or _
(Month(Date()) = Month(datBorn) and Day(Date()) < Day(datBorn)) Then Age = Age -1
End Function
Dim strVart_page , strVart_Query, strVart
strVart_page = Mid(Request.ServerVariables("PATH_INFO"),1)
strVart_Query = Request.ServerVariables("QUERY_STRING")
If Len(strVart_Query) > 0 Then
strVart = strVart_page &"?"& strVart_Query
Else
strVart = strVart_page
End If
dim strVart_LinkName, strVart_Name
strVart_LinkName = ("Spanar in i topplistan")
strVart_Name = strVart_LinkName
ObjConn.Execute("UPDATE TLUsers SET UsrWhere = '" & strVart & "', UsrWhereName = '" & strVart_Name & "' WHERE UsrID = "&SafeSQL(Session("UsrID")) & "")
%>
<table cellpadding="0" cellspacing="0" width="705">
<tr>
<td height="5">
<img src="../_Grafik/Profil_Vanster_Uppe.gif" alt="" width="9" height="7"></td>
<td height="7" style="background-image: url('../_Grafik/Profil_Uppe.gif');" width="666"></td>
<td height="5">
<img src="../_Grafik/Profil_Hoger_Uppe.gif" alt="" width="15" height="7"></td>
</tr>
<tr>
<td width="9" style="background-image: url('../_Grafik/Profil_Vanster.gif');" height="525"></td>
<td width="681" height="197">
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="23" id="table4">
<tr>
<td width="259" style="background-image: url('../_Grafik/Profil_Meny_Stor.gif');" height="23" style="padding: 3px">
Topplistan</td>
<td width="83" style="background-image: url('../_Grafik/Profil_Meny_Mellan.gif');" height="23">
<img src="../_Grafik/Pix.gif" width="10" height="10">
<a href="../UsrProfile/Profil.asp?UsrID=<%=Session("UsrID")%>">
Alla</a></td>
<td width="83" style="background-image: url('../_Grafik/Profil_Meny_Mellan.gif');" height="23">
<img src="../_Grafik/Pix.gif" width="10" height="10">
<a href="../UsrGuestbook/Guestbook.asp?UsrID=<%=Session("UsrID")%>">
Killar</a></td>
<td width="83" style="background-image: url('../_Grafik/Profil_Meny_Mellan.gif');" height="23">
<img src="../_Grafik/Pix.gif" width="10" height="10">
<a href="../UsrFriends/Friends.asp?UsrID=<%=Session("UsrID")%>">
Tjejer</a></td>
<td width="83" style="background-image: url('../_Grafik/Profil_Meny_Mellan.gif');" height="23">
</td>
<td width="90" style="background-image: url('../_Grafik/Profil_Meny_Liten.gif');" height="23">
</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="504">
<tr>
<td width="506" height="504" valign="top" style="padding: 3px;">
<%
Set ObjRS2 = ObjConn.Execute("Select * FROM TLUsers where TotalVote order by VoteGrade DESC LIMIT 10")
%>
<div><%
IF ObjRS2.Eof then
Response.Write "Finns inga på topplistan"
Else
%>
</div>
<table width="485" cellspacing="1" cellpadding="0" bgcolor="#000000" align="left">
<%
Do Until ObjRS2.EOF
%>
<% For i = 1 To 10 %>
<tr>
<td background="../_Grafik/UsrRankBorder.gif" width="16" align="center">
<b><% Response.Write i & "" %></b></td>
<td bgcolor="#FFFFFF" valign="top" style="padding: 3px;" width="460">
<table width="457" cellspacing="1" cellpadding="0" height="114">
<tr>
<td valign="top" style="padding: 3px;" width="99">
<img src="<%=ObjRS2("UsrPic")%>" border="1" width="90" height="110"></td>
<td valign="top" style="padding: 3px;">
<b>
<a href="../UsrProfile/Profil.asp?UsrId=<%=ObjRS2("UsrId")%>"><%=ObjRS2("UsrTLAlias")%></a></b> -
<%
If ObjRS2("UsrSex")="Kille" Then
Response.Write "P"
Else
Response.Write "F"
End If
%>
<%=Age(DateSerial(ObjRS2("UsrAgeYear"), ObjRS2("UsrAgeMonth"), ObjRS2("UsrAgeDay")))%> från <%=ObjRS2("UsrLiveLoc")%> <br>
<br>
<b>Antal röster:</b> <%=ObjRS2("TotalVote")%>
<br>
<b>Medelbetyg:</b>
<%
TotalVote = ObjRS2("TotalVote")
VoteGrade = ObjRS2("VoteGrade")
Snitt = Round(VoteGrade/TotalVote,2)
Response.Write ""&Snitt&""
%>
</td>
</tr>
</table>
</td>
</tr>
<%
Next
ObjRS2.MoveNext
Loop
ObjRS.Close : Set ObjRS = nothing
ObjRS2.Close : Set ObjRS2 = nothing
ObjConn.Close : Set ObjConn = Nothing
End if
%>
</table>
</td>
</td>
</tr>
</table>
</td>
<td width="15" style="background-image: url('../_Grafik/Profil_Hoger.gif');" height="197"></td>
</tr>
<tr>
<td height="5">
<img src="../_Grafik/Profil_Vanster_Nere.gif" alt="" width="9" height="6"></td>
<td height="5" style="background-image: url('../_Grafik/Profil_Nere.gif');"></td>
<td height="5">
<img src="../_Grafik/Profil_Hoger_Nere.gif" alt="" width="15" height="6"></td>
</tr>
<tr>
<td height="5">
<img src="../_Grafik/Profil2_Vanster_Nere.gif" alt="" width="9" height="16"></td>
<td height="5" style="background-image: url('../_Grafik/Profil2_Nere.gif');"></td>
<td height="5">
<img src="../_Grafik/Profil2_Hoger_Nere.gif" alt="" width="15" height="16"></td>
</tr>
</table>
</body>
</html>
Du gör ju begränsningen redan i SQL-frågan, så det finns ingen anledning att göra kontroll i asp-koden också. Ta bort din for-loop, den är helt onödig.