webForumDet fria alternativet

Sortera på ett snyggt sätt?

ASP

7 svar · 555 visningar · startad av webbSAJTEN

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

Tjenare!
Hur i helsike gör man så såhär:

A
Hämtar alla tävlinar på A i databasen

B
Hämtar alla tävlinar på B i databasen

C
Hämtar alla tävlinar på C i databasen

o.s.v.

Tacksam för härliga svar :D

Medlem sedan maj 200010 687 inlägg
#2

Typ så här:

SELECT * FROM tblContest WHERE ContestName LIKE 'A%'
Medlem sedan jan. 2002992 inlägg
#3

men då måste ja ju skapa 28 olika secordset..
De känns rätt onödigt..

Medlem sedan juli 20041 183 inlägg
#4
SELECT * FROM tblContest
WHERE ContestName LIKE 'A%'
OR ContestName LIKE 'B%'
OR ContestName LIKE 'C%'
ORDER BY ContestName ASC

Så hämtar du data från en databas. Men vad du vill göra förstår jag egentligen inte? Du kör ju en While-loop för att skriva ut all data i ETT reckordset. Du behöver inte skapa 28 olika...

Har du inte lite ASP kod att visa istället så blir det enklare att svara...

Medlem sedan jan. 2002992 inlägg
#5

Jag har en massa tävlingar lagrade i en databas.
Dom vill jag skriva ut med en rubrik som är den första bokstaven i namnen..
Som jag skrev...

Hittade en kod här på WF..

Do Until RS.EOF
  If LCase(Left(RS("strName"), 1)) <> strPreviousStartLetter Then
    Response.Write("<h1>" & UCase(Left(RS("strName"), 1)) & "</h1>")
  End If
response.Write(RS("strName"))
  '// skriv ut text och beskrivning

  strPreviousLetter = LCase(Left(RS("strname"), 1)) '\\ Forberedelse infor nasta db-post
  RS.MoveNext
Loop

Den fungerar inte riktigt, den skriver inte ut två tävlingar under samma rubrik utan skriver ut en rubrik före varje namn..

Medlem sedan nov. 20017 144 inlägg
#6

Du får lägga in den i en variabel.

strPreviousLetter = ""
Do Until RS.EOF
   If UCase(Left(RS("strName"), 1)) <> strPreviousLetter Then
     Response.Write("<b>" & strPreviousLetter & "</b>")
     strPreviousLetter = UCase(Left(RS("strname"), 1))
   End If
   response.Write RS("strName") &"<br>"

  RS.MoveNext
Loop
Medlem sedan juli 20003 825 inlägg
#7

Kolla på char() i dokumentationen

FOR j = 65 TO (65+28)
-- response.write CHAR(j) & " , "
NEXT

Are you with!?

Medlem sedan jan. 2002992 inlägg
#8

Den fungerade nästan.. :)

Jesper T skrev:

Du får lägga in den i en variabel.

strPreviousLetter = ""
Do Until RS.EOF
   If UCase(Left(RS("strName"), 1)) <> strPreviousLetter Then
     Response.Write("<b>" & strPreviousLetter & "</b>")
     strPreviousLetter = UCase(Left(RS("strname"), 1))
   End If
   response.Write RS("strName") &"<br>"

  RS.MoveNext
Loop
strPreviousLetter = ""
Do Until RS.EOF
   If UCase(Left(RS("strName"), 1)) <> strPreviousLetter Then
     strPreviousLetter = UCase(Left(RS("strname"), 1))     
     Response.Write("<b>" & strPreviousLetter & "</b>")
   End If
   response.Write RS("strName") &"<br>"

  RS.MoveNext
Loop

Nu fungerar det fint :D

265 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)