webForumDet fria alternativet

Arkiv A-Ö

ASP

13 svar · 646 visningar · startad av annesophie

Medlem sedan juni 20012 236 inlägg
Frågan#1

Hej,

Har en (Access)databas med många hundra faktaposter.

Ska nu skapa ett A-Ö arkiv där faktaposterna radas upp ganska simpelt i bokstavsordning baserat på fältet "contentHeader".

Det i sig är ju enkelt, men jag vill att begynnelsebokstaven skrivs ut innan raddan av innehåll som börjar på just den bokstaven.

Ex:

A <-- skriv ut
alkohol och graviditet
amning
Amniotiska band
andfåddhet

B <-- skriv ut
BB-väskan
Bisolvonmetoden
blodgruppsbestämning
blodsocker
blodsockerfall
blodtrycket
blodtrycksfall
blodvärdet (Hb)
bristningar på mage och bröst

etc....

Hur kan jag göra detta?

/A

Medlem sedan juli 2000325 inlägg
#2

Tips från coachen:

firstLetter = ""
SQL Sträng
Do until RS.EOF

contentHeader = RS("contentHeader")
IF firstLetter <> Left(contentHeader,1) THEN
firstLetter = contentHeader
Response.Write(firstLetter&"<BR>")
END IF

RS.MoveNext
LOOP
RS.Close

Medlem sedan juni 20012 236 inlägg
#3

Tack - ska testa! :bire

Medlem sedan maj 200010 687 inlägg
#4

Viktigt bara med den koden att det är rätt sorterat.

Medlem sedan juni 20012 236 inlägg
#5

Nu har jag äntligen funnit lite tid att testa koden som jag fick hjälp med ovan...men...

<%
sql = "SELECT * FROM [content] order by contentHeader;"
set rs = conn.execute(sql)
'response.write sql

firstLetter = ""

Do until RS.EOF

contentHeader = RS("contentHeader")
IF firstLetter <> Left(contentHeader,1) THEN
firstLetter = contentHeader 
Response.Write(firstLetter&"<BR>")
END IF

RS.MoveNext
LOOP
RS.Close
%>

Ovan kod genererar bara alla faktaradstitlar (contentHeader) i bokstavsordning utan inledande bokstav... Det kan jag ju fixa själv med mindre kod.

Adoption
Blodgruppsbestämning
Blodsocker
Blodsockerfall
Blodtrycket
CTG (cardiotocografi)
Druvbörd

Jag vill ju att det ska se ut såhär:

A
Adoption

B
Blodgruppsbestämning
Blodsocker
Blodsockerfall
Blodtrycket

C
CTG (cardiotocografi)

D
Druvbörd

Hur fixar jag fram A, B, C, D etc etc?
Vad gjorde jag fel med ovan kod? :q

Medlem sedan juni 200032 967 inlägg
#6
<%
sql = "SELECT * FROM [content] order by contentHeader ASC;"
set rs = conn.execute(sql)
response.write sql

firstLetter = ""

Do until RS.EOF

contentHeader = RS("contentHeader")
IF firstLetter <> Left(contentHeader,1) THEN
    firstLetter = Left(contentHeader, 1) 
    Response.Write("<br>" & firstLetter & "<BR>")
END IF
Response.write contentHeader & "<br>"
RS.MoveNext
LOOP
RS.Close
%>

edit: slängde in koden i sammanhang också

Medlem sedan dec. 200012 464 inlägg
#7
<%
sql = "SELECT contentHeader FROM content order by contentHeader ASC"
set rs = conn.execute(sql)
response.write sql

firstLetter = ""

Do until RS.EOF
    contentHeader = RS("contentHeader")
    IF  firstLetter <> Left(contentHeader,1) THEN
         if  firstLetter <> "" then response.write "<br>"
         firstLetter = left(contentHeader,1) 
         Response.Write firstLetter & "<BR>"
    END IF
    response.write contentHeader & "<br>"
    RS.MoveNext
LOOP
RS.Close
%>
Medlem sedan juni 20012 236 inlägg
#8

Du är den okrönte mästaren @nders...of course. *bugar mig ödmjukast*

Bara ett problem återstår...

Varför blir det så här?

A
Abort

Å
Åderbråck

A
Adoption

Ä
Äggdonation
Ägglossningssymtom
Ägglossningstester

A
Alkohol och graviditet
Amning - teorin
Amniotiskt band (Amniotic band syndrome)
Andfåddhet
Att köpa babykläder
Att köpa babysäng
Att köpa babyskydd (bilbarnstol)
Att köpa barnvagn

---
Alla de andra bokstäverna funkar fint
---

U
Ultraljud

u
ultraljud , ultraljudsbilder
ultraljud, vaginalt ultraljud, ultraljudsbilder

U
Urinprov

u
urinvägsinfektion, blåskatarr och njurbäckeninflammation

U
Utebliven Ägglossning (PCO)
Utebliven mens
Utomkvedshavandeskap (extrauterin graviditet)

A och Ä och Å om vartannat och en massa U?
Är det nån distinct som måste till...plus något mer?

Medlem sedan juni 200032 967 inlägg
#9

U-problemet beror på att gement u inte är samma sak som ett versalt.

<%
sql = "SELECT * FROM [content] order by contentHeader ASC;"
set rs = conn.execute(sql)
response.write sql

firstLetter = ""

Do until RS.EOF

contentHeader = RS("contentHeader")
IF firstLetter <> Ucase(Left(contentHeader,1)) THEN
    firstLetter = Ucase(Left(contentHeader, 1) )
    Response.Write("<br>" & firstLetter & "<BR>")
END IF
Response.write contentHeader & "<br>"
RS.MoveNext
LOOP
RS.Close
%>

Problemet med svenska bokstäver är lite fånigt. Jag ska se om jag hittar någon tråd som hjälper dig på traven.

mvh

Medlem sedan juni 200032 967 inlägg
Medlem sedan juni 20012 236 inlägg
#11

Tackar...nu försvann alla U in i en kolumn. :)

Men det förklarar ju fortfarande inte:

A
Abort

Å
Åderbråck

A
Adoption

Varför hamnar inte Adoption under Abort?

:q

Medlem sedan juni 200032 967 inlägg
#12

A = Å = Ä

Läs inlägget jag länkade till i mitt förra inlägg. ;)

mvh

Medlem sedan juni 20012 236 inlägg
#13

Ah, jag hann skriva innan jag såg ditt inlägg ovan.
Testade precis och det funkar, naturligtvis, perfekt nu!

TACK! :bire :f

Medlem sedan juni 200032 967 inlägg
#14

Jåri vellkam! :D

301 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
156 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
158 ms — ändringar (db)