Fast enda felet är att den skriver ut samma antal på allting.. Jag har tre kategorier som det ska skrivas ut antal annonser i, fast den skriver ut samma på alla.. Vad ska man skriva för att får ut innehållet ur Count-grejen? Är det <%=RS3("ID")%> eller nått annat?
Set RS3 = Conn.Execute("SELECT Kategori, COUNT(*) AS ID From annonser WHERE cat = " & cat &" AND typ = " & RS2("ID"))
while not RS3.eof
response.write RS3("Kategori") & " (" & RS3("ID") & ") <br>"
RS3.movenext
wend
Nu blir jag lite smått förvirrad (lär mig hela tiden..), fast ni kan få se hela koden.. Tanken är att först väljer man kategori (default.asp), sedan kommer man till denna sida och här väljer man typ (köpes, säljes etc.) och här ska alltså antalet annonser i varje typ skrivas ut..
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("databas.mdb")
SQL = "SELECT * FROM kategorier where Id = " & Request.Querystring("cat")
Set RS = Conn.Execute(SQL)
SQL = "SELECT * FROM subkategorier"
Set RS2 = Conn.Execute(SQL)
cat = Request.Querystring("cat")
Set RS3 = Conn.Execute("SELECT COUNT(*) AS ID From annonser WHERE cat = " & cat &" AND typ = " & RS2("ID"))
%>
<html>
<head>
<title>-</title>
</head>
<body bgcolor="#ffffff" text="#000000" link="#FF0033" alink="#FF0033" vlink="#FF0033">
<br><br>
<table border="0" width="400" cellpadding="0" cellspacing="0" align="center">
<tr>
<td>
Du har valt kategorin <%=RS("kategori")%><br>
<br>
Välj typ av annonser som skall visas:
<br>
<% Do Until RS2.EOF %>
<a href="visa.asp?cat=<%=RS("ID")%>&typ=<%=RS2("ID")%>"><%=RS2("typ")%></a> (<% =RS3("ID") %> st. annonser..)<br>
<%
RS2.MoveNext
Loop
%>
</td>
</tr>
</table>
</body>
</html>
<%
RS.Close
RS2.Close
RS3.Close
Conn.Close
%>
Det finns säkert massor med fel, fast det funkar iaf fint tills nu när antalet skall skrivas ut på sidan..
Det är så att den första (RS) kollar vilken kategori det handlar om från en egen tabell med kategorier, den andra (RS2) skriver ut vilka typer det finns ur en egen tabell, och den sista (RS3) ska räkna alla annonser ur ytterligare en tabell med alla annonser som har rätt kategori OCH typ. Som du nu har skrivit så kollas väl varken rätt kategori eller skriver ut typerna..? Fast jag sa heller aldrig att det var en tabell till varje sak. Det finns tre typer av annonser (köpes, säljes och bytes) och den första som skrivs ut är säljes sedan köpes och till sist bytes. I säljes finns fyra annonser, i köpes en och i bytes ingen. RS3 skriver ut rätt vid den första (säljes, fyra annonser) men sedan skrivs det ut fyra även vid de andra två. Varför? Det fungerar ju tydligen inte i loopen att den kollar de andra två typerna.. Nu vart det kanske lite mycket text här, men jag hoppas du förstår ungefär i alla fall..
Anledningen till att du får ut samma är att du bygger sql-satsen för rs3
en gång med det första typ-värdet. Om du vill att din lösning skall fungera så får du flytta in den i loopen.
<% Do Until RS2.EOF
Set RS3 = Conn.Execute("SELECT COUNT(*) AS ID From annonser WHERE cat = " & cat &" AND typ = " & RS2("ID")) %>
(men annars är det tänkt att min lösning skulle räkna annonser med rätt typ och kategori och skriva ut typen, jag kan ha missat något kolumnnamn.)