24. februar 2009 - 14:41
Der er
3 kommentarer og
1 løsning
loop af rs sætning ind i en sql select sætning
jeg har 2 select sætninger, den første udvælger gruppen af artikler, den anden select sætning vælger alle artikler og billeder fra db, ud fra gruppen.
problemet er at varRsVis = rsVis("aid")laver ingen loop, den udskriver kun den første eller sidste post i tabellen, som passer til den gruppe jeg vil udskrive, jeg vil gerne have den til at loop alle artikler som høre ind under den gruppe ?
case "vis"
varGruppe = Request.QueryString("gruppe")
sqlVis = "SELECT * FROM tbartikel WHERE tbartikel.gruppe="&varGruppe&" "
set rsVis = conn.execute(sqlVis)
varRsVis = rsVis("aid")
sqlartikel = "SELECT * FROM tbbilleder, tbartikel WHERE tbartikel.aid="&varRsVis&" AND tbbilleder.bartikel="&varRsVis&""
set rsartikel = conn.execute(sqlartikel)
do until rsartikel.eof
%>
<div id="blaarammetilgalleri">
<%=rsartikel("overskrift")%>
</div>
<div id="teksttilgalleri">
<%=rsartikel("brodtekst")%>
</div>
<div id="billedetilgalleri">
<img src="upload/<%=rsartikel("bnavn")%>.jpg" />
</div>
<%
rsartikel.movenext
loop
%>
24. februar 2009 - 14:56
#1
Det ser for mig ud til at du laver lidt dobbeltarbejde med dine SQL-sætninger. Jeg vile umiddelbart bare lave en JOIN mellem billeder og artikel og så iterere igennem resultatet...
case "vis"
varGruppe = Request.QueryString("gruppe")
if not isnumeric(varGruppe) then
' STANDS forsøg på "snyd"...
Response.Write "Ugyldig gruppe!"
Response.End
end if
sqlartikel = "" & _
"SELECT * " & _
"FROM tbbilleder b " & _
"INNER JOIN tbartikel a ON a.id = b.aid " & _
"WHERE a.gruppe = " & varGruppe
set rsartikel = conn.execute(sqlartikel)
do until rsartikel.eof
%>
<div id="blaarammetilgalleri">
<%=rsartikel("overskrift")%>
</div>
<div id="teksttilgalleri">
<%=rsartikel("brodtekst")%>
</div>
<div id="billedetilgalleri">
<img src="upload/<%=rsartikel("bnavn")%>.jpg" />
</div>
<%
rsartikel.movenext
loop
rsartikel.close
set rsartikel = nothing
conn.close
set conn = nothing
%>
Grunden til at din egen version ikke fungerer er dog, at du ikke itererer over rsVis-resultatet, men kun aflæser den første rækkes id. Du skulle altså have en løkke mere ind i din egen kode for at det skal fungere. Jeg vælger dog at illustrere en mere effektiv metode for dig i mit eksempel... :-)