webForumDet fria alternativet

Poängräkning

19 svar · 706 visningar · startad av WebbisNet

WebbisNetMedlem sedan feb. 20032 027 inlägg
#1

Jag har en funktion där man kan rösta på presentationsbilder, detta funkar perfekt och nu har jag lagt till en ny tabell där varje enskild röst läggs till. Kolumnerna är
fran | till | rost

Det jag nu undrar är om en person till exempel får siffrorna
1,1,2,5,5,5,3,4,5. Hur räknar jag ut vem som har fått flest femmor så jag kan visa vem som är snyggast i min top10.

Har en person 4 femmor och en annan 2 femmor så ska ju den med 4 femmor visas före den med 2 femmor

LarsGMedlem sedan dec. 200012 464 inlägg
#2
select till, count(*) as highFives
from t
where rost = 5
group by till
order by highFives desc
WebbisNetMedlem sedan feb. 20032 027 inlägg
#3

Utökade lite och fick nu tjejer i båda kolumnerna när jag ska ha killar i en och tjejer i en

Set male=objConn.Execute("select till, city, community, persnr, sex, picture, username, userID, roster, rost, varde, count(*) as highFives "&_
"from tblRoster r INNER JOIN tblUsers u ON u.userID = r.till "&_
"where rost = 5 or rost = 4 and sex='M' and picture <> 'nopic.jpg' and not picture='1.jpg' "&_
"group by till "&_
"order by highFives desc limit 10")

Set female=objConn.Execute("select till, city, community, persnr, sex, picture, username, userID, roster, rost, varde, count(*) as highFives "&_
"from tblRoster r INNER JOIN tblUsers u ON u.userID = r.till "&_
"where rost = 5 or rost = 4 and  sex='F' and picture <> 'nopic.jpg' and not picture='1.jpg' "&_
"group by till "&_
"order by highFives desc limit 10")

//Längre ner på sidan
<table>
<%do until male.eof%>
<tr>
<td valign="top">
<img height="60" width="60" src="/images/users/<%=male("picture")%>">
</td>
<td>
<span class="brodtext">
<a class="menu" href="/view.asp?userID=<%=male("userID")%>">Besök krypinet</a><p>
<%=male("username")%>&nbsp;<%=male("sex")%><%=alder(male("persnr"))%> år<br>
Antal röster: <%=male("roster")%><br>
Antal poäng: <%=male("varde")%><br>
Bor: <%=male("city")%>,  <%=male("community")%><br>
</span>
</td>
</tr>
<%male.movenext: loop%>
</table>

	</td>
	<td class="presentation">

	<td width="350" class="presentation">

<table>
<%do until female.eof%>
<tr>
<td valign="top">
<img height="60" width="60" src="/images/users/<%=female("picture")%>">
</td>
<td>
<span class="brodtext">
<a class="menu" href="/view.asp?userID=<%=female("userID")%>">Besök krypinet</a><p>
<%=female("username")%>&nbsp;<%=female("sex")%><%=alder(female("persnr"))%> år<br>
Antal röster: <%=female("roster")%><br>
Antal poäng: <%=female("varde")%><br>
Bor: <%=female("city")%>,  <%=female("community")%><br>
</span>
</td>
</tr>
<%female.movenext: loop%>
</table>
@ndersMedlem sedan juni 200032 969 inlägg
#4

Om du ska ha villkoren så måste du gruppa or-villkoren med parenteser, annars räcker det med att rost=5.

WebbisNetMedlem sedan feb. 20032 027 inlägg
#5

Gjorde så och nu visas en tjej och ingen kille trots att en kille har fått en femma, den första sen ombyggnaden så då borde ju han visas, men det är tomt hos killarna

Set male=objConn.Execute("select till, city, community, persnr, sex, picture, username, userID, roster, rost, varde, count(*) as highFives "&_
"from tblRoster r INNER JOIN tblUsers u ON u.userID = r.till "&_
"where (rost = 5 or rost = 4) and sex='M' and picture <> 'nopic.jpg' and not picture='1.jpg' "&_
"group by till "&_
"order by highFives desc limit 10")

Set female=objConn.Execute("select till, city, community, persnr, sex, picture, username, userID, roster, rost, varde, count(*) as highFives "&_
"from tblRoster r INNER JOIN tblUsers u ON u.userID = r.till "&_
"where (rost = 5 or rost = 4) and  sex='F' and picture <> 'nopic.jpg' and not picture='1.jpg' "&_
"group by till "&_
"order by highFives desc limit 10")
WebbisNetMedlem sedan feb. 20032 027 inlägg
#6

Så här ser databasen ut just nu och det är bara en tjej som visas, inte en kille trots att det finns

+------+------+------+
| fran   | till      | rost |
+------+------+------+
|    1   | 1297  |    5 |
| 1139 | 1349  |    5 |
|    1   |  806   |    5 |
|  999  | 1402  |    5 |
|    1   | 1514  |    4 |
+------+------+------+
SjodahlMedlem sedan maj 20033 218 inlägg
#7

WebbisNet skrev:

Det jag nu undrar är om en person till exempel får siffrorna
1,1,2,5,5,5,3,4,5. Hur räknar jag ut vem som har fått flest femmor så jag kan visa vem som är snyggast i min top10.

Har en person 4 femmor och en annan 2 femmor så ska ju den med 4 femmor visas före den med 2 femmor

Är det bara 5orna som räknas?
Varför inte bara använda medelpoäng?

WebbisNetMedlem sedan feb. 20032 027 inlägg
#8

Det är fyror och femmor som räknas. Målet är att de som har högst poäng efter fyror och femmor ska visas, inte de som har flest röster med flest poäng

SjodahlMedlem sedan maj 20033 218 inlägg
#9

Ett medel blir det ju inte dem som har flest röster som räknas!
Men lite elakt om någon har tex:
1-1-1-1-1-1-1-1-1-1-1-1-5-5-5
och någon har
3-3-3-3-3-3-3-3-3-3-3-3-4-5-5
Att den första skall komma högre. Men nu var det inte det du fråga efter så sorry!

WebbisNetMedlem sedan feb. 20032 027 inlägg
#10

Vilket blir mest rättvist då?

SjodahlMedlem sedan maj 20033 218 inlägg
#11

Ja tycker väl att ett medel är mest rättvist
Totalt antal poäng / antal röster!

WebbisNetMedlem sedan feb. 20032 027 inlägg
#12

hur ska jag då skriva om satsen för att visa medelpoängen på var och en av de 10 som visas?

cyprysMedlem sedan dec. 20003 563 inlägg
#13
select till, avg(rost) as avgVotes
from t
group by till
order by avgVotes desc
WebbisNetMedlem sedan feb. 20032 027 inlägg
#14

ska det inte vara så här

Set male=objConn.Execute("till, avg(rost) as avgVotes from tblUsers where sex='M' and picture <> 'nopic.jpg' and not picture='1.jpg' "&_
"group by till "&_
"order by avgVotes desc limit 10")

får detta fel
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[MySQL][ODBC 3.51 Driver][mysqld-4.0.25-max]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'till, avg(rost) as avgVotes from tblUsers where sex='M' and not

/snyggast/Default.asp, line 8

cyprysMedlem sedan dec. 20003 563 inlägg
#15

Select my friend, select is the key. ;)

WebbisNetMedlem sedan feb. 20032 027 inlägg
#16

vad jag är trög, hur kan man missa det?

WebbisNetMedlem sedan feb. 20032 027 inlägg
#17

Ser bara en tjej och inga killar nu

Set male=objConn.Execute("select persnr, roster, varde, username, picture, userID, sex, city, community, till, avg(rost) as avgVotes from tblRoster INNER JOIN tblUsers ON tblRoster.till = tblUsers.userID where sex='M' and picture <> 'nopic.jpg' and not picture='1.jpg' "&_
"group by till "&_
"order by avgVotes desc limit 10")

Set female=objConn.Execute("select persnr, roster, varde, username, picture, userID, sex, city, community, till, avg(rost) as avgVotes from tblRoster INNER JOIN tblUsers ON tblRoster.till = tblUsers.userID where sex='F' and picture <> 'nopic.jpg' and not picture='1.jpg' "&_
"group by till "&_
"order by avgVotes desc limit 10")
cyprysMedlem sedan dec. 20003 563 inlägg
#18

Ok.
Om det är rätt är väl allt ok?
Vad ska det rätta svaret vara?

WebbisNetMedlem sedan feb. 20032 027 inlägg
#19

Svaret ska vara att fler än en tjej och minst en kille ska visas då de har fått poäng i den nya tabellen

WebbisNetMedlem sedan feb. 20032 027 inlägg
#20

finns det nåt enklare sätt att räkna ut snitt i sql-satsen, jag får inga resultat alls nu

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)