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 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 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]
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.
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")%> <%=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 sSQL="SELELCT * FROM SPELARE WHERE lag ='" & lag & "' ORDER BY position"
selelct heter det inte.
------------------
essentitia preter non sans multiplicandum
Nä fan! Det har du ju helt rätt i :-)
OlleBoopMedlem sedan feb. 20001 861 inlägg 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]