Låt oss säga att jag har en databas full med produkter, låt oss sen säga att i samma databas är produkterna uppdelade i olika kategorier.
Då kan man tex välja att göra flera SQL frågor och ta "WHERE kat = 3" "WHERE kat = 4"
och lägga svaren i variabler och skriva ut dem, men om man istället vill loopa sig igenom detta, hur går man tillväga då?
Alltså, jag vill att svaren retuneras i drop down listor, jag skall ge ett exempel på hur det är löst idag:
Processor = "SELECT tabArt.ArtID, tabArt.Artikel, tabArt.ArtExkl, tabArt.TypID FROM tabArt WHERE tabArt.TypID = 1 AND (tabArt.Web = 1) ORDER BY tabArt.Artikel"
SET PR = Connection.Execute(Processor)
RAM = "SELECT tabArt.ArtID, tabArt.Artikel, tabArt.ArtExkl, tabArt.TypID FROM tabArt WHERE tabArt.TypID = 2 AND (tabArt.Web = 1) ORDER BY tabArt.Artikel"
SET RA = Connection.Execute(RAM)
<%=text%>Processor</font><br>
<SELECT name="processor" onChange="tal1 = this[this.selectedIndex].pris *1,updatera()">
<OPTION name="processor" pris="0" value="">Inget</OPTION>
<%
DO UNTIL PR.EOF
%>
<OPTION name="processor" pris="<%= PR("ArtExkl")%>" value="<%= PR("ArtID") %>"><%= PR("Artikel")%> - <%= PR("ArtExkl")%>kr</OPTION>
<%
PR.MoveNext
Loop
%>
<OPTION value=""><% = mellan %></OPTION>
</SELECT>
<br>
<%=text%>Ram</font><br>
<SELECT name="ram" onChange="tal2 = this[this.selectedIndex].pris *1,updatera()">
<OPTION name="ram" pris="0" value="">Inget</OPTION>
<%
DO UNTIL RA.EOF
%>
<OPTION name="ram" pris="<%= RA("ArtExkl")%>" value="<%= RA("ArtID") %>"><%= RA("Artikel")%> - <%= RA("ArtExkl")%>kr</OPTION>
<%
RA.MoveNext
Loop
%>
<OPTION value=""><% = mellan %></OPTION>
</SELECT>
Jag vill altså lösa det på så sätt att for each KAT then och så lägga in det i en drop down meny som jag beskrev ovan. Nu gör jag ju det manuellt, men så kan man ju inte hålla på.
... jag har löst nått liknande genom att använda mig av JOIN. Först kollar jag vilka kategorier som finns (med JOIN), och sedan utifrån dom så skapar du SQL-satsen dynamiskt... har ingen syntax i huvudet just nu, får se om jag kan framana den snart :) ...
------------------
MVH / Vide
Min hemsida:webeye.nu
Jag antar att du har en tabell i databasen som innehåller kategorierna (ID och namn). Då kan du väl loopa igenom dessa och exekvera en ny select för varje rad i tabellen.
cats=conn.execute("select * from brimbacats")
do until cats.eof
prodssql = "SELECT tabArt.ArtID,tabArt.Artikel, tabArt.ArtExkl, tabArt.TypID FROM tabArt WHERE tabArt.TypID = " & cats("ID") & " AND (tabArt.Web = 1) ORDER BY tabArt.Artikel"
SET prods = Connection.Execute(prodssql)
skriv ut menyn för prods-recordset
loop
eller så kan du selecta alla produkter i alla kategorier, sortera på kategori och artikelnummer (select * from artiklar orderby typid,artikel), och loopa igenom hela recordsetet. För varje looprunda läggar du in typid i en variabel, och om den variabeln har förändrats påbörjar du en ny dropmeny (if mTypid>mTypid then...).
Joina med kategoritabellen så kan du få ut kategorinamnet också.
------------------
----------------------------
Gunnar Liljas - webbutvecklare
Leon Reklambyrå AB
Norrköping
ASP/VB/Perl/PHP/Tango