06. marts 2005 - 10:04
Der er
2 kommentarer og
1 løsning
Multiple select - Del II
På en side, hvor jeg har en multiple select-box, vælger jeg f.eks. 3 værdier, som sendes videre til næste side.
Her tages der imod værdierne, og sql-sætningen bliver konstrueret efter hvor mange man har valg. I dette tilfælde bliver den:
SELECT * FROM tbKategori WHERE Kategori = 1000 OR Kategori = 10007 OR Kategori = 1001
Det jeg gerne vil have den til, er at den skal vælge Kategori 1000, skrive dens overskrift - rs("overskrift") - og vælge de produkter - rs("produkt") - , der er derunder. Så skal den gå videre til Kategori 10007, skrive dens overskrift o.s.v. Hvis der ikke er noget under kategorien, skal der bare stå "Ingen poster fundet".
Jeg ved ikke hvor jeg skal loope, for at overskriften ikke kommer på alle produkter, men kun 1 gang øverst for hver kategori.
Håber, at nogen kan hjælpe.
06. marts 2005 - 10:31
#1
Du kan gøre det i stil med dette:
sql = "din sql sætning"
Set rs = Conn.Execute(sql)
oldKat = ""
katList=","
do while not rs.EOF
if cstr(oldKat) <> cstr(rs("kategori")) then
oldKat = rs("kategori")
katList = katList & oldKat & ","
response.write "<b>" & rs("overskrift") & "</b><br>"
end if
Response.Write rs("produkt") & "<br>"
rs.Movenext
loop
Det men den skal skrive "ingen produkter" kan ikke direkte laves hvis man henter det ud fra produkt tabellen, da der ikke kommer en tom post med kategorien hvis der ikke findes et produkt. Så man må lave en join imellem kategorier og produkter så man kan få en tom post.
06. marts 2005 - 11:09
#2
Det er perfekt. Tak.
Det med "ingen produkter" dropper jeg bare, da det forhåbentlig ikke forekommer ret meget.
Så læg blot er svar.