webForumDet fria alternativet

Sammanlagt medelbetyget?

ASP

22 svar · 986 visningar · startad av SGuncel

Medlem sedan jan. 2007217 inlägg
Frågan#1

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.

kod:
http://www.aspsidan.se/code/default.asp?c=6742

felmeddelande:
Type mismatch
/UsrProfile/Profil3.asp, line 241

EDIT:
Har uppdaterad koden

Medlem sedan dec. 2006608 inlägg
#2

om du skriver ut VoteGrade och TotalVote vad får du för resultat då?

Medlem sedan jan. 2007217 inlägg
#3

Får hur många röster användaren har fått och totala betyget. Men totala betyget stämmer inte.

Medlem sedan juni 200032 967 inlägg
#4

Se till att typkonvertera innan du försöker räkna.
Cdbl() eller CLng() kan passa.

Medlem sedan dec. 2006608 inlägg
#5

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... ;) )

Medlem sedan jan. 2007217 inlägg
#6

Testade med CLng() men rätta betyget och medelbetyget skrivs inte ut.
Både är Tal (int) och använder mig av MySQL

Medlem sedan juni 200032 967 inlägg
#7

... och på vilket sätt fungerar det alltså inte när du typkonverterat? Hur ser din kodrad ut, och vad får du för felmeddelande?

(snälla, var lite mer specifik, så blir det lättare för oss att hjälpa, då vi inte behöver fråga om allt...)

Medlem sedan jan. 2007217 inlägg
#8

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.

Medlem sedan juni 200032 967 inlägg
#9

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()).

Medlem sedan nov. 20014 054 inlägg
#10

@nders skrev:

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")))

läs med:

 VoteGrade = CLng(Count("vgrade"))

Om jag nu inte missade något någonstans.. :)

Ps.
Bespara dig lite med response.write

Response.Write ""&byt(ObjRS("Press"))&""

går även att skriva

Response.Write byt(ObjRS("Press"))

:)

Medlem sedan jan. 2007217 inlägg
#11

Fredde Mannen, har löst.
Nu har man lärt sig något nytt :D

Medlem sedan jan. 2007217 inlägg
#12

En sak jag undrar..
Nu håller jag på göra topplistan. Hur skulel ni stortera? Efter antal röster eller medelbetyget?

Medlem sedan mars 20015 287 inlägg
#13

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.

Medlem sedan jan. 2007217 inlägg
#14

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">
                &nbsp;</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>
Medlem sedan mars 20015 287 inlägg
#15

Om felet är att du smattrar ut tio likadana inlägg är det för att du har en loop:

<% For i = 1 To 10 %>

....

Next

Medlem sedan jan. 2007217 inlägg
#16

mm, men hur ska jag göra de?
jag visar 10 snyggaste medlemmar o det blir 10 poster på alla..

Medlem sedan juni 200032 967 inlägg
#17

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.

Medlem sedan jan. 2007217 inlägg
#18

Okej, men hur ska jag kunna ha siffrorna 1-10?
Så man vet vem som är etta och sånt.

Medlem sedan dec. 19996 721 inlägg
#19

Använd en variabel som du plussar på med 1 i varje loop-varv.

Medlem sedan jan. 2007217 inlägg
#20
<!-- #include file="Inc/Conn.asp" --><!-- #include file=".Inc/Check.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="../_Style/SidansStyle.css" type="text/css">

<SCRIPT type="text/javascript" src="../postnr/jsPostNr.asp" onreadystatechange="if (this.readyState=='complete') window.status=''; else window.status='Script: ' + this.readyState;" defer>
</SCRIPT>

</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="../UsrRank/UsrRank.asp">
				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="../UsrRank/UsrRankBoys.asp">
				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="../UsrRank/UsrRankGirls.asp">
				Tjejer</a></td>
                               <td width="83" style="background-image: url('../_Grafik/Profil_Meny_Mellan.gif');" height="23">
                &nbsp;</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 Count = ObjConn.Execute("Select SUM(VoteGrade) AS vgrade FROM Votes")
                       
								VoteGrade = Cint(Count("vgrade"))
                              
                              Set ObjRS2 = ObjConn.Execute("Select * FROM TLUsers where TotalVote order by "&VoteGrade&" DESC LIMIT 10")
                              
                              	TotalVote = Cint(ObjRS("TotalVote"))
                              %>
                              <div><%
                              IF ObjRS2.Eof then
					Response.Write "Du har inga besökare."
								Else
								%>
								</div>
                            
<table width="485" cellspacing="1" cellpadding="0" bgcolor="#000000" align="left">
	
	<%
		For i = 1 To 10
		Do Until ObjRS2.EOF
	%>	
	<tr>
		<td background="../_Grafik/UsrRankBorder.gif" width="16" align="center">
		<b></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> 
		<%
			Snitt = Round(VoteGrade/TotalVote,2)

			Response.Write ""&Snitt&""
		%>
		</td>
		
	</tr>
</table>
		</td>		
	</tr>
			
<%
	ObjRS2.MoveNext
	Loop
	Next
	
	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>

Försöker göra topplistan men får denna felet

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[MySQL][ODBC 3.51 Driver][mysqld-5.0.19-nt]Unknown column '67' in 'order clause'

/UsrRank/UsrRank.asp, line 91

259 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
116 ms — ändringar (db)