webForumDet fria alternativet

Sortera efter kolumrubriker?

ASP

6 svar · 213 visningar · startad av SannyW

Medlem sedan jan. 2003438 inlägg
Frågan#1

Skulle vilja kunna sortera de olika kolumerna med ASC, alltså om jag trycker på rubriken Matcher så sorteras "matcher ASC" och trycker på rubriken Mål så sorteras "mal ASC".

Vet att det skall vara möjligt att sortera så, men hjärnan vill inte hitta lösningen. Kanske någon här som har en bättre fungerande sådan :)

Tack på förhand. (Nedanföljer koden)

<tbody>

<tr>
<td width="10"> </td>
<td><font title="Namn">NAMN</font></td>

\<td width="40" align="right"\>\<font title="Matcher"\>Matcher\</font\>\</td\>
\<td width="40" align="right"\>\<font title="MÅl"\>Mål\</font\>\</td\>
\<td width="40" align="right"\>\<font title="Assist"\>Ass\</font\>\</td\>
\<td width="50" align="right"\>\<font title="Poäng"\>Poäng\</font\>\</td\>
\<td width="40" align="right"\>\<font title="Gula"\>Gula\</font\>\</td\>
\<td width="40" align="right"\>\<font title="Röda"\>Röda\</font\>\</td\>
\<td width="60" align="right"\>\<font title="Plus+++"\>Plus+++\</font\>\</td\>
\<td widht="10"\>&nbsp;\</td\>

</tr>

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../db/site.mdb")&";"

Set RecSet = Server.CreateObject("ADODB.Recordset")

Addera = "SELECT * FROM spelare ORDER BY Namn ASC"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
%>

<%
DO UNTIL RecSet.EOF
%>

<tr>
<td width="10"> </td>
<td><font title="Namn"><A class=menu2 onmouseover="self.status='<%=RecSet("Namn")%>';return true" onfocus=this.blur() onmouseout="self.status='';return true" href="default.asp?path=spelare&id=<%=RecSet("id")%>"><%=RecSet("Namn")%></a></font></td>

\<td width="40" align="right"\>\<font title="Matcher"\>\<%=RecSet("trmatcher")%\>\</font\>\</td\>
\<td width="40" align="right"\>\<font title="MÅl"\>\<%=RecSet("trmal")%\>\</font\>\</td\>
\<td width="40" align="right"\>\<font title="Assist"\>\<%=RecSet("trass")%\>\</font\>\</td\>
\<td width="50" align="right"\>\<font title="Poäng"\>\<%=RecSet("trpoang")%\>\</font\>\</td\>
\<td width="40" align="right"\>\<font title="Gula"\>\<%=RecSet("trgula")%\>\</font\>\</td\>
\<td width="40" align="right"\>\<font title="Röda"\>\<%=RecSet("trroda")%\>\</font\>\</td\>
\<td width="60" align="right"\>\<font title="Plus+++"\>\<%=RecSet("trplus")%\>\</font\>\</td\>
\<td widht="10"\>&nbsp;\</td\>

</tr>

Medlem sedan dec. 20002 526 inlägg
#2
strTyp = request.querystring("typ")
If strTyp = "" then
  matchellernamn = "Match"
else
  matchellernamn = "Mal"
End IF

Vet ej om det ar sa du menar?

Tips, anvand [ kod ] taggarna (utan mellanslag) for att gora din kod lattlast ;)

Valkommen forresten ;)

Medlem sedan jan. 2003438 inlägg
#3

Tjena Chris, tack för att du tagit dig tid.

Är ganska ny på detta med asp, vet inte riktigt om det du skrev ovan är rätt eller fel. Men vad jag vill är att kunna sortera tabelldatan per kolumn.

Så om jag tycker på matcher så skall listan sorteras efter den osv. Alltså Matcher, Mal, Assist, Poäng, Gula, Roda, Plus+++.

När du skrev ovan:
[strTyp = request.querystring("typ")
If strTyp = "" then
matchellernamn = "Match"
else
matchellernamn = "Mal"
End IF]

Så kan jag inte se hur det hjälper mig, har inte hittat tråden riktigt ännu med allt. :) Så om du har lust att sätta in det i sitt sammanhang så att även en mindre begåvad människa förstår så vore jag tacksam :)

Medlem sedan dec. 20002 526 inlägg
#4

okey, ska forsoka hjalpa :)

Vad jag forstod sa ville du sortera efter ASC eller DESC? Eller vill du bara sortera efter Matcher, Mal... osv? Tankte att du har en lank i varje <td> dar du nu skriver Matcher, Mal, Assist osv... Om du skulle gor det sa har:

<td width="40" align="right"><font title="Matcher"><a href="sidanduarpanu.asp?typ=<%=RecSet("trmatcher")%>"><%=RecSet("trmatcher")%></a></font></td>

sa far du ett varde i querystringen, alltsa <%=request.querystring("typ")%>
Sen tankte jag sa har att om man inte har klickat pa nagon "typ", alltsa <%=RecSet("trmatcher")%> vardet i <td>'n.. sa blir det sa har:

strTyp = request.querystring("typ")
If strTyp = "" then
  sortera = ""
else
  sortera = strTyp
End IF

och i "Addera":

Addera = "SELECT * FROM spelare ORDER BY "&sortera&" ASC"

Hanger du med? :D Det ar bara att fraga pa, hjalper garna!

//Chris

Medlem sedan feb. 200112 078 inlägg
#5

Bra tänkt, men glöm inte att variabeln kan vara tom. ;) Isåfall kommer SQL-frågan att kasta ett error eftersom du inte kan ha ORDER BY utan ett kolumnnamn.

Därför:

strTyp = request.querystring("typ")
If strTyp = "" then
  sortera = "ID"
else
  sortera = strTyp
End IF

Jag satte ID som standard, för det finns väl antagligen en kolumn som heter det? :)

Medlem sedan jan. 2003438 inlägg
#6

Tack för all hjälp, skall försöka få ihop Eran lösningen sen. Har en temporär lösning så länge, inte så bra men funkar.

  <tr>
    <td width="10">&nbsp;</td>
    <td><font title="Klicka för att sortera efter namn"><a href="default.asp?path=trstats&typ=namn">NAMN</font></td>
    <td width="40" align="right"><font title="Klicka för att sortera efter antal träningar"><a href="default.asp?path=trstats&typ=antal">ANTAL</font></td>
    <td width="40" align="right"><font title="Klicka för att sortera efter max antal träningar"><a href="default.asp?path=trstats&typ=max">MAX</font></td>
    <td width="60" align="right"><font title="Klicka för att sortera efter närvaro"><a href="default.asp?path=trstats&typ=narvaro">NÄRVARO</font></td>
    <td width="5">&nbsp;</td> 
    <td width="1" bgcolor="#000000"><img src="1x1_tom.gif" alt="" width="1" height="2" border="0"></td>
    <td width="5">&nbsp;</td>
    <td width="40" align="right"><font title="Klicka för att sortera efter matcher"><a href="default.asp?path=trstats&typ=matcher">MATCHER</a></font></td>
    <td width="40" align="right"><font title="Klicka för att sortera efter mål"><a href="default.asp?path=trstats&typ=mal">MÅL</font></td>
    <td width="40" align="right"><font title="Klicka för att sortera efter assist"><a href="default.asp?path=trstats&typ=ass">ASS</font></td>
    <td width="50" align="right"><font title="Klicka för att sortera efter poäng"><a href="default.asp?path=trstats&typ=poang">POÄNG</font></td>
    <td width="40" align="right"><font title="Klicka för att sortera efter gula"><a href="default.asp?path=trstats&typ=gula">GULA</font></td>
    <td width="40" align="right"><font title="Klicka för att sortera efter röda"><a href="default.asp?path=trstats&typ=roda">RÖDA</font></td>
    <td width="60" align="right"><font title="Klicka för att sortera efter plus+++"><a href="default.asp?path=trstats&typ=plus">PLUS+++</font></td>
    <td widht="10">&nbsp;</td>
</tr>

<% IF Request.QueryString ("typ") = "namn" THEN %> 
<% 
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../db/site.mdb")&";"

Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM spelare ORDER BY Namn ASC" 
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
%>
<% END IF%>

<% IF Request.QueryString ("typ") = "matcher" THEN %> 
<% 
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../db/site.mdb")&";"

Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM spelare ORDER BY matcher DESC, Namn ASC" 
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
%>
<% END IF%>

osv.....

Efter som jag anropar sidan med Request.QueryString så är det ok.

Tack än en gång.

Medlem sedan mars 20015 287 inlägg
#7

Typ:

<% 
strTyp = request.querystring("typ")
If strTyp = "" then
  sortera = "ID"
else
  sortera = strTyp
End IF

Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../db/site.mdb")&";"

Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM spelare ORDER BY " & sortera & " ASC" 
RecSet.Open Addera, Connect, 3, 3

%>

Kanske att du vill att man ska lägga till något så du inte missar din andra sorteringskolumn iofs.
Hojta i så fall.

263 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)