webForumDet fria alternativet

Visa enbart likadana värden

ASP

5 svar · 279 visningar · startad av satchmo

Medlem sedan nov. 200120 inlägg
Frågan#1

Hej på er allihopa.
Sitter här med mitt lilla script , och får inte ut värdena jag vill ha riktigt.
Det jag skulle vilja är att en person som har en viss typ av landplätt enbart ska kunna se de andra som har likadana landplättar. Dvs mitt lag som har landplätt (åker) ska inte kunna se andra spelare som har landplätt (stad).

Tackar för hjälpen

<%

uid=trim(session("uid"))
Set RS = Conn.execute("SELECT count(*) as numberp FROM player where uid = '"&uid&"'")
while not RS.eof
numberOfPlayer=cint(rs("numberp"))
RS.movenext
wend
RS.close
Set RS = nothing

Set RS = Conn.execute("SELECT count(*) as landplattavailable FROM userinfo where uid = '"&uid&"' and landplatt is null")
while not RS.eof
landplatt=cint(rs("landplattavailable"))
RS.movenext
wend
RS.close
Set RS = nothing

if numberOfPlayer < 5 then
%>
<script language="javascript">
alert("Du måste ha 6 spelare för att kunna utmanna, du har just nu <%=numberOfPlayer%> spelare")
window.close()
</script>

<%else if stadium<>0 then%>
<script language="javascript">
alert("Du måste köpa en landplätt innan du kan utmanna")
window.close()
</script>
<%else%><b>
Välj laget du vill utmana:
<p> <font color="225533">Lag namn</font>
<form name="cha" action="challenge.asp" method=Post>
<select name="team" size=10>
<%

'spelaren ska enbart se likadana landplättar
'Set RS66 = Conn.execute("SELECT * From userinfo WHERE stadium <> '"&stadium&"'")

Set RS = Conn.execute("SELECT * FROM userinfo where uid <> '"&uid&"'")
while not RS.eof

uid2=trim(rs("uid"))
Set rs1= Conn.execute("SELECT count(*) as totalplayers FROM player where uid ='"&uid2&"'")
while not RS1.eof

totalplayers=cint(rs1("totalplayers"))

RS1.movenext
wend
RS1.close
Set RS1 = nothing

if totalplayers >= 6 then

%>

<option value="<%=trim(rs("tname"))%>"><%=rs("tname")%>(<%=rs("fan")%>)</option>

<%
end if
RS.movenext
wend
RS.close
Set RS = nothing

Medlem sedan nov. 20017 144 inlägg
#2

Jag tror att du lättare får hjälp om du beskriver det specifika problemet.
Hur det blir/inte blir. Vad som blir fel/inte blir fel.
Samt, att du klamrar in din kod mellan [kod ] och

:)

Medlem sedan nov. 200120 inlägg
#3

Problemet är att just nu så listas alla landplättar ut, när man kollar på andra personer.
Det jag vill är att om du har landplätt a så ska du enbart kunna se alla andra som har landplätt a, just nu ser du alla vare sig de har a,b,b,e osv. Så det är egentligen en sorterings jag är ute efter.
Om jag har landplätt a och vill utmanna någon ska jag enbart i listan kunna se de andra med landplätt a, de med b ska endast kunna se b. osv

Medlem sedan dec. 19996 721 inlägg
#4

Set RS = Conn.execute("SELECT DISTINCT u1.* FROM userinfo u1, userinfo u2 WHERE u1.uid<>u2.uid AND u1.landplatt=u2.landplatt AND u2.uid= '"&uid&"'")

Medlem sedan nov. 200120 inlägg
#5

Ett geni, det funkar.
Du ska ha hjärtligt tack för hjälpen :-)

Medlem sedan dec. 19996 721 inlägg
#6

Det var så lite så. En sak till dock. När du hämtar ut ett enda värde från databasen så behöver du inte loopa (eftersom det inte finns något att loopa över)

Ex.

Set RS = Conn.execute("SELECT count(*) as numberp FROM player where uid = '"&uid&"'")
while not RS.eof
numberOfPlayer=cint(rs("numberp"))
RS.movenext
wend

...kan skrivas som

Set RS = Conn.execute("SELECT count(*) as numberp FROM player where uid = '"&uid&"'")
if not RS.eof
numberOfPlayer=cint(rs("numberp"))
end if

eller till och med

numberOfPlayer=cint(Conn.execute("SELECT count(*) FROM player where uid = '"&uid&"'")(0))

Eftersom vi i detta fall alltid kommer att få något svar

260 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)