Trådstart 26 apr. 2001 09:29 #1 Jag har en SQL-sats som nääästan gör som jag vill
Ser ut så här:
SQL = "SELECT * FROM events ORDER BY arena, ID ASC"
Förklaring:
arena = olika platser (typ globen, skandinavium osv)
ID = vanligt ID-nummer
Jag skulle nu vilja styra ordningsföljden på vilken arena som presenteras först resp. tvåa osv.
( använder ID till att lista senast inskrivna evenemang högst upp i resp. arena )
Hoppas det blev begripligt
/webb
SQL = "SELECT * FROM events ORDER BY arena ASC, ID DESC"
Eller missuppfattade jag dig?
Ja det blev nog lite missuppfattning
Kolumnen arena innehåller alltså bara namnet på arenan. Som du ser så har jag lyckats samla dem så de listas ihop arena för arena, men problemet är att få bestämma ordningsföljd av arenorna.
Tex. alla globenevenemang först sedan ... osv.
/webb
OK!
Kolla in den här då, är det något för dig?
Jag förstod inte hur jag skulle göra om förslaget i länken ovan så jag försökte mig på en egen lösning.
Den är inte komplett och fungerar inte, men jag ville visa den för att se om det går att spinna vidare på tanken.
<table cellpadding="3">
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=x:\xxx\xxx\xxx\xxx.mdb"
SQL = "SELECT * FROM events ORDER BY arena, ID ASC"
rs.Open SQL, Connect
Dim plats(6), val
plats(0) = "första namnet"
plats(1) = "andra namnet"
plats(2) = "tredje namnet"
plats(3) = "fjärde namnet"
plats(4) = "femte namnet"
plats(5) = "sjätte nament"
For Each val In plats
If plats = "" Then
rs.MoveNext
End If
Do While Not rs.EOF
%>
<tr>
<td width="435" align="left" bgcolor="#FFEA77" colspan="2"><font face="verdana" size="2" color="#485581"><b><%=rs("rubrik")%></b></font>
</td></tr><tr>
<td width="435" align="left" colspan="2"><font face="verdana" size="1"color="#485581"><%=rs("texten")%></font></td>
</tr></table>
<table cellpadding="3" border="0"><tr>
<td width="300"><font face="verdana" size="2"color="#485581">Plats: <b><%=rs("arena")%></b></font></td>
<td rowspan="3" valign="bottom" align="right">
<form action="order.asp" method="post">
<input type="image" src="../images/ticket.jpg" border="0">
<input type="hidden" name="ID" value="<%=rs("ID")%>">
</form>
</td></tr><tr>
<td width="300"><font face="verdana" size="2"color="#485581">Dag: <b><%=rs("dag")%></b></font></td></tr><tr>
<td width="300"><font face="verdana" size="2"color="#485581">Antal platser: <b><%=rs("platser")%></b></font></td></tr><tr>
<td colspan="2"><font face="verdana" size="2"color="#485581">Priser: <b><%=rs("priser")%></b></font></td></tr><tr>
<td colspan="2" width="435"> </td>
</tr>
<%
rs.MoveNext
Loop
Next
%>
</table>
Önskemålet är alltså att lista arenorna i en given ordning, inom samma arena sorteras de med högsta ID överst.
Nu skulle denna kanske hellre legat i ASP-forumet men jag hoppas det finns folk som kikar även här
/webb
@nders Medlem sedan juni 2000 32 967 inlägg jag hade lagt till ett fält (heltal) i tabellen, med namnet sortfield.
jag hade sedan sett till att alla globenposter hade värdet 1 i sortfield, alla jägersro-poster 2 och alla poster som gäller scandinavium 3 (bara exempel, helge!). sedan hade jag helt sonika sorterat i sql-frågan på, i första hand sortfield, i andra hand id.
mvh,
red: bara fixade en pinsam särskrivning...
Om ingen hittar en lösning med befintliga kolumner så får det bli en till kolumn precis som du beskriver @nders
/webb
L LarsG Medlem sedan dec. 2000 12 464 inlägg Det går ju att lägga till dynamiskt,om man vill. (Hackade lite då jag tyckte det var skoj.)
arenas = array("globben","skandinavium","Hovet","Storkyrka","Plattan","Aphuset")
iif = ""
for i = 0 to ubound(arenas)
iif = iif & "iif(ARENA = '" & arenas(i) & "'," & i & ","
next
iif = mid(iif,1,len(iif)-1) & replace(space(ubound(arenas) + 1)," ",")")
sql = "select arena,id," & iif & _
" from events order by 3,2 desc"
eller så kan man ju hårdkoda in iif uttrycket.
Woaw, och jag som drog mig för att skriva till en tabell i databasen
Nädu LarsG den nivån klarar jag inte ännu Men tack ändå
/webb