Avatar billede trine_h Nybegynder
23. juni 2003 - 10:44 Der er 9 kommentarer og
2 løsninger

Sortering af db forespørgsel

Hvis jeg laver en database forespørgsel : "SELECT * FROM TABLE" og tablet har en kolonne der hedder kategori:
Hvordan kan jeg så sortere outputtet således at
jeg først skriver alle felter ud der eks. har kategorinavnet : "sport" et sted og derefter skriver alt ud fra querien der har kategorinavnet : "nyheder" et andet sted?
Avatar billede matric Nybegynder
23. juni 2003 - 10:47 #1
Du kunne lave en forespørgsel for hver kategori:

SELECT * FROM TABLE WHERE kategori = "sport"
SELECT * FROM TABLE WHERE kategori = "nyheder"
Avatar billede overchord Nybegynder
23. juni 2003 - 10:49 #2
Hvis du vil have hele tabellens indhold ud i en sorteret "smoere":

SELECT * FROM TABLE SORT BY kategori
Avatar billede matric Nybegynder
23. juni 2003 - 10:52 #3
overchord, du mener: "SELECT * FROM TABLE ORDER BY kategori" ?
Avatar billede trine_h Nybegynder
23. juni 2003 - 10:58 #4
matric - den fremgangsmåde har jeg overvejet - jeg havde tænkt mig noget i retning af :
while rs("cat") = "nyheder" AND not rs.eof
Avatar billede matric Nybegynder
23. juni 2003 - 11:03 #5
trine, det ville også være en fin løsning - så skal du bare huske at lave en ORDER BY.
Avatar billede trine_h Nybegynder
23. juni 2003 - 11:04 #6
while not rsmenu.bof and not rsmenu.eof
if rsmenu("cat") = "treatment" then
udskriv...
end if

Eller er det mere effektivt at lave et database udtræk for hver kategori?
Avatar billede matric Nybegynder
23. juni 2003 - 11:05 #7
Men det kommer jo an på om du skal have vist flere kategorier på samme side. Hvis du kun skal have vist sports-kategorier ville det være oplagt at benytte min fremgangsmåde. Hvis du derimod skal have vist en oversigt over flere kategorier ville jeg nok bruge din egen løsning.

Men det gør ikke den store forskel. Brug hvad du selv bedst syntes om :)
Avatar billede trine_h Nybegynder
23. juni 2003 - 11:27 #8
Problemet er at det skal bruges til at lave et popup menu system dynamisk. For hver kategori og menufelt skal der indsættes følgende:
addmenu(menu=["2838",,,120,1,"",style1,,"left",,,,,,,,,,,,,
<%
while not rsmenu.bof and not rsmenu.eof    %>
,"<%=rsmenu("name")%>  ","<%=rsmenu("link")%>",,"Sport",1
<%
rsmenu.movenext
wend
%>
])
   
Dvs. at for hvert menufelt skal jeg lave et udtræk i databasen

Hvordan kan dette gøres smartere?
Avatar billede matric Nybegynder
23. juni 2003 - 11:37 #9
Det får jeg nok lidt svært ved at hjælpe dig med - jeg koder ikke ASP.. men jeg forstår et dog nogenlunde. Det du lige har skrevet har jeg dog lidt svært ved at gennemskue. addmenu er javascript?

må jeg ikke se lidt mere kode?
Avatar billede overchord Nybegynder
23. juni 2003 - 13:42 #10
matric -> Yeps du har helt rart. Midlertidig hjernelammelse ;-)
Avatar billede carpediem Nybegynder
23. juni 2003 - 15:09 #11
Hej Trine

Du skal nok tænke i baner som denne:

SQL = "SELECT * FROM TABLE ORDER BY kategori"
rs.Open SQL, conn, 3, 3
Do While NOT rs.EOF
  If Trim(rs("Kategori")) = Trim(strKategori) Then
    'Så er vi i samme kategori som den foregående
    'Udskriv
  Else
    'Så er det en ny kategori
    'Udskriv
  End If
  strKategori = rs("Kategori")
  rs.MoveNext
Loop
rs.Close
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