webForumDet fria alternativet

Trådad visning

ASP

9 svar · 218 visningar · startad av SteveP

Medlem sedan mars 2003772 inlägg
Frågan#1

Hej,

Jag har skapat 2 tabeller

------ Main -------
RUBRIK             CAT
Partybilder         2
Gigs                3

------ Sub -------
SUBRUBRIK            CAT
Nyår                  2
Sommarfest            2
MoseBacke             3
Globen                3

¨

Nu vill jag alltså skriva ut dessa i trådform alltså:

Första rubriken i maintabellen och under den rubriken ska alla Subrubriker stå som har samma CAT, sen ska den visa nästa Rubrik och visa Subrubriker under den rubriken med samma Cat.

Måste detta lösas med 2 separata SQLQuerys?
Isf hur placerar jag dom 2 looparna

Medlem sedan mars 20023 561 inlägg
#2

Ungefär så här:

'Öppna databasen

strSQL = "SELECT * FROM Main;"
Set objRsMain = objConn.Execute(strSQL)
Do until objRsMain.EOF
     Response.Write(objRsMain("rubrik"))
     strSQL = "SELECT * FROM Sub WHERE cat = objRsMain("cat");"
     Set objRsSub = objConn.Execute(strSQL)
     Do until objRsSub.EOF
          Response.Write(objRsSub("Subrubrik"))
          objRsSub.MoveNext
     Loop
     objRsMain.MoveNext
Loop

'Stäng databasen

Lite rörigt men du förstår nog. ;)

Medlem sedan mars 2003772 inlägg
#3

Ah perfekt, då e ja helt med!
Tack

Medlem sedan mars 2003772 inlägg
#4

Löste sig nu tack!

Medlem sedan mars 20023 561 inlägg
#5

Du får skriva:

SELECT DISTINCT * FROM osv...
Medlem sedan mars 20032 667 inlägg
#6

Jag skulle nog gjort en join mellan tabellerna och styrt utskriften i loopen. Det borde vara prestandamässigt bättre än att göra en nestlad loop.

Medlem sedan mars 20023 561 inlägg
#7

Det är ingen nestlad loop. Det är bara en loop i loopen. :e

Medlem sedan mars 20032 667 inlägg
#8

Josef skrev:

Det är ingen nestlad loop. Det är bara en loop i loopen. :e

Hur som helst får du 1 * n antal sql-frågor (istället för en) beroende på hur många huvudkategorier du har.

Medlem sedan mars 20023 561 inlägg
#9

K@llen skrev:

Josef skrev:

Det är ingen nestlad loop. Det är bara en loop i loopen. :e

Hur som helst får du 1 * n antal sql-frågor (istället för en) beroende på hur många huvudkategorier du har.

Mmm..Jag vet... Det var kanske inte den mest optimala lösningen men jag orkade inte tänka på att joina just då... ;)

Medlem sedan mars 20032 667 inlägg
#10

Kanske så här. En otestad ihopkastad kod sent på kvällen. ;)

sql ="select m.rubrik, s.subrubrik from Main m " & _
" inner join Sub s " & _
" on m.CAT = s.CAT " & _
" order by m.rubrik desc "

set objRS = connect.execute(sql)

while not objRS.eof 
   
    if objRS("rubrik") <> lastRubrik then

        response.write objRS("rubrik") & "<br>" 

    end if

        response.write objRS("subrubrik") & "<br>"
			
        lastRubrik = objRS("rubrik") 

        objRS.movenext

wend

RED: en liten miss fixad

265 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)