Avatar billede jacand Nybegynder
26. maj 2002 - 14:17 Der er 4 kommentarer og
1 løsning

Loop fra 2 Tabeller

Hvordan får jeg nyrs til at køre i loop indtil rs er færdig?
Jeg har 2 tabeller i en access DB "Kategori" og "Annoncer" i tabellen Kategori har jeg alle mine kategorier og i tabellen Annoncer er annoncerne, og jeg skulle gerne have nedenstående til at vise hvor mange annoncer der er under hver kategori, men jeg kan ikke lige få den til det :)


<!-- #include file="autoslet.asp" -->
<!-- #include file="db.asp" -->
<!-- #include file="top.asp" -->
<%
Set con = Server.CreateObject("ADODB.Connection")
con.Open strDSN

Sql = "SELECT * FROM Kategori ORDER BY Description"
Set RS = Con.Execute(Sql)
Description = RS("Description")

countSQL="SELECT count(*) as antal, Kategori FROM Annoncer GROUP BY kategori"
Set nyRS = Con.execute(countSQL)
'On error resume next
%>   
<%Do While Not RS.EOF%>

<body bgcolor="#C0C0C0">

<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#C0C0C0" id="AutoNumber1" width="400">
  <tr>
    <td width="250%"><a href="kategori.asp?kategori=<%=RS("Description")%>"><%=rs("Description") %>.....</a>&nbsp;</td>
  </tr>
</table>
<%
if RS("Description") = nyrs("kategori") then Response.Write nyrs("Antal") & nyrs("kategori") else Response.Write "Fejl"

RS.MoveNext
nyRS.MoveNext
loop

%></table></body></html>
Avatar billede eagleeye Praktikant
26. maj 2002 - 14:35 #1
Det skal lave i en SQL ellers kan du ikke holde styr på antal og katorier:

sql = "SELECT Kategori.Description, Count(Annoncer.ID) AS AntalOfID FROM Annoncer RIGHT JOIN Kategori ON Annoncer.kategori = Kategori.ID GROUP BY Kategori.Description;"
Set rs = Conn.Execute(sql)

<body bgcolor="#C0C0C0">
<%Do While Not RS.EOF%>

<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#C0C0C0" id="AutoNumber1" width="400">
  <tr>
    <td width="250%"><a href="kategori.asp?kategori=<%=RS("Description")%>"><%=rs("Description") %>.....</a>&nbsp;</td>
  </tr>
</table>
<%
  Response.Write "Antal annoncer i denne kategori " & rs("AntalOfID")
  RS.MoveNext
loop
Avatar billede eagleeye Praktikant
26. maj 2002 - 14:39 #2
der skal vist lige rykkes lidt rundt på det...


<%Do While Not RS.EOF%>

<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#C0C0C0" id="AutoNumber1" width="400">
  <tr>
    <td width="250%"><a href="kategori.asp?kategori=<%=RS("Description")%>"><%=rs("Description") %>.....</a>&nbsp;</td>
<td>Antal annoncer i denne kategori <%=rs("AntalOfID")%></td>
  </tr>
</table>
<%
  RS.MoveNext
loop
Avatar billede jacand Nybegynder
26. maj 2002 - 14:48 #3
Det vil sige at hvis det ligger i en access DB der er kun den lange vej tilbage, men at lave en tæller der bliver opdateret hvergang der tilføjes eller slettes en annonce :)
Avatar billede eagleeye Praktikant
26. maj 2002 - 15:15 #4
Det kommer an på hvad den lange vej er...

I tabellen "Kategori" kan du lave en tæller som holder styr på hvor mange annoncer der er.
du kan kalde den antalAnnoncer : tal.

Så kan du opdater den når du tilføjer eller sletter fra annoncer.

"UPDATE kategori SET antalAnnoncer = antalAnnoncer + 1 WHERE ID = " & kategorisomfårTILFØJETenannonce

"UPDATE kategori SET antalAnnoncer = antalAnnoncer - 1 WHERE ID = " & kategorisomfårSLETTETenannonce
Avatar billede jacand Nybegynder
26. maj 2002 - 15:52 #5
Grunden til at den er den lange vej er at jeg også har under kategorier der også skal opdateres.
det vill have været letter hvis man kunne køre 2 loop med access :)
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