Avatar billede rille101 Nybegynder
10. maj 2010 - 16:27 Der er 6 kommentarer

Sortere efter bynavn og angiv bynavn som deloverskrift

Hej.
Jeg vil lave en liste som henter sine værdier fra en database.

jeg har følgende tabeller:

steder:
id  navn
1    København 
2    Århus
3    Odense


attraktioner:
titel        beskrivelse  relation
Kgs Nytorv        bla bla      1
Odense ZOO    bla bla      3
Den Gamle By  bla bla      2
osv.

attraktioner.Relation relaterer til steder.id


jeg vil gerne have det således at jeg får en liste der ser ud som følger:

KØBENHAVN:
Den Lille Havfrue
Tivoli
Kgs. Nytorv

ÅRHUS:
Den Gamle By
Marselisborg
Moesgaard

ODENSE
HC Andersens hus
Odense ZOO

osv.

Jeg har lavet følgende:

RSsteder.Open "SELECT steder.navn, slides.titelDa, slides.relation FROM steder, slides WHERE steder.id = slides.relation ORDER by steder.navn", myConn


<%
navn = ""
Do While Not RSsteder.EoF
    navn = RSsteder("navn")
dettenavn = UCase(navn)

    If dettenavn <> navn Then
        navn = detteNavn%>
                <%Response.Write navn%>
    <%End If
%>
                  </span>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
                      <tr>
                        <td width="35%" height="15" valign="top"><%=RSSteder("titel"&language&"")%></td>
  </tr>
</table>
                    <%
RSsteder.MoveNext
Loop
%>



Men det giver resultatet:
KØBENHAVN:
Den Lille Havrue
KØBENHAVN:
Kgs. Nytorv
KØBENHAVN:
Tivoli
osv.

Hvordan får jeg den til kun at skrive KØBENHAVN een gang, og så opliste alle de attraktioner der relaterer til København osv...
Avatar billede ksoren Nybegynder
10. maj 2010 - 16:46 #1
oldnavn = ""

LØKKE

  IF navn <> oldnavn THEN

    oldnavn = navn
    UDSKRIV navn

  ENDIF

END LØKKE

Noget i den stil
Avatar billede rille101 Nybegynder
10. maj 2010 - 20:47 #2
Det er også sådan noget jeg havde forestillet mig, men jeg kan ikke få det hen.
Har prøvet ud fra dit forslag at lave følgende:

<%
oldnavn = ""
Do While Not RSsteder.EoF

    If RSsteder("navn") <> oldnavn Then
    oldnavn = RSsteder("navn")%>
      <%=RSsteder("navn")%>   
    <%End If
%>
attraktion
<%
RSsteder.MoveNext
Loop
%>


Men det resulterer i at der slet ikke bliver angivet nogle bynavne/overskrifter
Avatar billede ksoren Nybegynder
10. maj 2010 - 21:00 #3
prøv

<%=oldnavn%>
Avatar billede ksoren Nybegynder
10. maj 2010 - 21:03 #4
<%
oldnavn = ""
Do While Not RSsteder.EoF
  navn = RSsteder("navn")

  If navn <> oldnavn Then
    oldnavn = navn
    Response.Write navn
  End If
%>


Response.Write: så slipper man for det der hoppen ind og hoppen ud hele tiden.

Det er ser før, at når rs("xxx") er tilgået én gang, så forsvinder værdien.
Avatar billede rille101 Nybegynder
10. maj 2010 - 23:05 #5
Tak!
Den virker. Smider du et svar?!
Avatar billede rille101 Nybegynder
24. marts 2011 - 13:16 #6
Vil du ikke have points?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester