webForumDet fria alternativet

Fråga angående liknande loop.

ASP

6 svar · 222 visningar · startad av Brimba

Medlem sedan dec. 19995 874 inlägg
Frågan#1

Hej!

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å.

Någon som har några tips?

Tack!

------------------
Mvh
Patrik
aka Brimba

www.datormaklarna.se
patrik@datormaklarna.se

Medlem sedan dec. 19998 577 inlägg
#2

... 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

Medlem sedan dec. 19996 721 inlägg
#3

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

Medlem sedan dec. 19995 874 inlägg
#4

Hej!

Tack emission!

Jag satt å fiffla med arrays innan du sa ett sanningens ord.

Tack!

------------------
Mvh
Patrik
aka Brimba

www.datormaklarna.se
patrik@datormaklarna.se

Medlem sedan mars 20002 836 inlägg
#5

Hello,

påbörjar du en ny dropmeny (if mTypid>mTypid then...).

Skulle nog använda mig av :

If mTypId <> mTypId

eller är det fel tänkt?

/PatrikB

Medlem sedan dec. 19996 721 inlägg
#6

Ja, alltså, jag menade ju rs("typid")>mTypid...

Medlem sedan dec. 19995 874 inlägg
#7

Ehh, det har jag redan löst :)

------------------
Mvh
Patrik
aka Brimba

www.datormaklarna.se
patrik@datormaklarna.se

262 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)