webForumDet fria alternativet

Många SQL-satser blir det...

7 svar · 191 visningar · startad av Karlsson

KarlssonMedlem sedan maj 2000252 inlägg
#1

Jag har en sida där ca: 10 lags spelare ska visas. Mitt problem är sorteringsordningen, jag vill visa trupperna efter coach, målvakt, back och forward från fältet position. ORDER BY position ger ju sorteringen i bokstavsordning. Om jag gör separata sql-satser för varje lag så blir det ju närmare 40 såna, känns osmidigt minsann... så här ser koden ut just nu:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "***;Password***"
%>

<%lag = Request.QueryString("lag")%>

<%
Select Case lag
  Case "herrar"
    sSQL="SELECT * FROM spelare WHERE lag ='herrar' ORDER BY position"
  Case "damer"
    sSQL="SELECT * FROM spelare WHERE lag ='damer' ORDER BY position"
  Case "j17"
    sSQL="SELECT * FROM spelare WHERE lag ='j17' ORDER BY position"
  Case "f16"
    sSQL="SELECT * FROM spelare WHERE lag ='f16' ORDER BY position"
End Select
%>
<TABLE WIDTH="410" BORDER="0" cellpadding="0" cellspacing="2">
<%
Set rs = Server.CreateObject("ADODB.Recordset") 
rs.Open sSQL, Conn
Do While Not rs.EOF
cnt = cnt + 1
strColor = "" 
If cnt Mod 2 = 0 then strColor = "#CCCCCC"
Response.Write "<TR bgcolor='" & strColor & "'>"
%>
<TD><%=rs("nummer")%></TD><td><%=rs("position")%></TD><td><%=rs("fnamn")%> <%=rs("enamn")%></TD><td>
</TR>

<%
rs.MoveNext
Loop
rs.Close 
Conn.Close 
%>

[Redigerat av Karlsson den 02 okt 2001]

[Redigerat av Karlsson den 02 okt 2001]

PatrikBMedlem sedan mars 20002 836 inlägg
#2

Hello,

det du kan göra är att skapa ett fält till i tabellen position som tex sortorder och av typen tal.

Sedan förstår jag inte varför du har en select case för sql-frågorna.

Denna funkar på samma sätt:

lag = Request.QueryString("lag")
sSQL="SELECT * FROM spelare WHERE lag ='" & lag & "' ORDER BY position"

cya
PatrikB

------------------
*ordning och reda!, pengar på fredag.*

@ndersMedlem sedan juni 200032 969 inlägg
#3

Byt

Select Case lag
Case "herrar"
sSQL="SELECT * FROM spelare WHERE lag ='herrar' ORDER BY position"
Case "damer"
sSQL="SELECT * FROM spelare WHERE lag ='damer' ORDER BY position"
Case "j17"
sSQL="SELECT * FROM spelare WHERE lag ='j17' ORDER BY position"
Case "f16"
sSQL="SELECT * FROM spelare WHERE lag ='f16' ORDER BY position"
End Select

mot

sSQL="SELECT * FROM spelare WHERE lag ='" & lag & "' ORDER BY position"

Eventuellt kan du ju ha en if-sats runt för att se att det inte kommer en massa skräp, men det borde inte behövas.

Mvh,

------------------
All your base are belong to me.

[Redigerat av @nders den 02 okt 2001]

KarlssonMedlem sedan maj 2000252 inlägg
#4

Ja, det där var ju onekligen lite bättre!
Får väl grubbla vidare hur jag ska lösa sorteringen... position är ju inte tabellen utan ett fält i tabellen spelare.

KarlssonMedlem sedan maj 2000252 inlägg
#5

Just nu går det väl sådär...

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DSN=***;Password=***"
Set rs = Server.CreateObject("ADODB.Recordset") 
lag = Request.QueryString("lag")
sSQL="SELELCT * FROM SPELARE WHERE lag ='" & lag & "' ORDER BY position"
%>

<TABLE WIDTH="410" BORDER="0" cellpadding="0" cellspacing="2">
<%
rs.Open sSQL, Conn
Do While Not rs.EOF
cnt = cnt + 1
strColor = "" 
If cnt Mod 2 = 0 then strColor = "#CCCCCC"
Response.Write "<TR bgcolor='" & strColor & "'>"
%>
<TD><%=rs("nummer")%></TD><td><%=rs("position")%></TD><td><%=rs("fnamn")%>&#160;<%=rs("enamn")%></TD><td>
</TR>

<%
rs.MoveNext
Loop
rs.Close 
Conn.Close 
%>

Ger följande felmeddelande:

ADODB.Recordset.1 error '80004005'
SQLState: 37000
Native Error Code: -3500
[INTERSOLV][ODBC SequeLink driver][ACCESS][Microsoft][ODBC Microsoft Access Driver] Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.

/evo/lista_spelare.asp, line 28
Linje 28 är den där jag öppnar recordsetet.

LarsGMedlem sedan dec. 200012 464 inlägg
#6
sSQL="SELELCT * FROM SPELARE WHERE lag ='" & lag & "' ORDER BY position"

selelct heter det inte.

------------------
essentitia preter non sans multiplicandum

KarlssonMedlem sedan maj 2000252 inlägg
#7

Nä fan! Det har du ju helt rätt i :-)

OlleBoopMedlem sedan feb. 20001 861 inlägg
#8

Eftersom det där var det sista vi kommer att se av Karlsson på ett tag(han sitter hemma och är generad) så skall jag på hans vägar be om ursäkt... ;)

[Redigerat av OlleBoop den 02 okt 2001]

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