webForumDet fria alternativet

Hjälp mig..

ASP

12 svar · 180 visningar · startad av Holgersson

Medlem sedan okt. 2001509 inlägg
Frågan#1

Vad är fel här..?
Som sagt kan jag inte mycket ASP.. ;)

På de sista tecknen får jag meddelandet "oavslutad strängkonstant":

Set RS3 = Conn.Execute("SELECT COUNT(*) AS ID From annonser WHERE cat = " & cat &" AND typ = " & RS2("ID")") <-- där

Förstår inte mycket.. :r

Medlem sedan dec. 200012 464 inlägg
#2
Set RS3 = Conn.Execute("SELECT COUNT(*) AS ID From annonser WHERE cat = " & cat &" AND typ = " & RS2("ID"))

------------------
essentitia preter non sans multiplicandum

Medlem sedan okt. 2001509 inlägg
#3

Tackar, nu fungerar det.

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? :r

Medlem sedan feb. 20012 412 inlägg
#4
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

Mvh Jörgen :)

[Redigerat av jorgen den 27 okt 2001]

Medlem sedan okt. 2001509 inlägg
#5

Den där skriver alltså ut antalet annonser vid rätt typ..?
Eller..? :r

Medlem sedan feb. 20012 412 inlägg
#6

Hej!

Jag vet inte ifall ditt fält heter Kategori, om inte får du ändra det fältet.

Den skriver ut tex:

Bilar (5)

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

Medlem sedan dec. 200012 464 inlägg
#7

Njae, du får nog fel om du skriver så

Set RS3 = Conn.Execute("SELECT Kategori, COUNT(*) AS ID From annonser WHERE cat = " & cat &" AND typ = " & RS2("ID") & " group by kategori")

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 27 okt 2001]

Medlem sedan feb. 20012 412 inlägg
#8

Tack för du är vaken LarsG, missade GROUP BY :r

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

Medlem sedan okt. 2001509 inlägg
#9

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>&nbsp;(<% =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..

Medlem sedan dec. 200012 464 inlägg
#10

Har jag fattat rätt om det inte finns någon koppling mellan kategori och subkategori?

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("databas.mdb")
cat =  Request.Querystring("cat")
sql = "select s.id , s.typ, k.kategori, count(*) as antal " &_
" from  kategorier as k, subkategorier as s, annonser as a " & _
" where k.id = " & cat & " and a.cat = k.id and a.typ = s.id " & _
" group by s.id,s.typ,k.kategori"
set rs = conn.execute(sql)
%>
<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 RS.EOF %>
<a href="visa.asp?cat=<%=cat%>&typ=<%=RS("ID")%>"><%=RS("typ")%></a> (<% =RS("ANTAL") %> st. annonser..)<br>
<% 
RS.MoveNext
Loop
%>
</td>
</tr>
</table>
</body>
</html>
<% 
RS.Close
Conn.Close
%>

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 27 okt 2001]

Medlem sedan okt. 2001509 inlägg
#11

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

Medlem sedan dec. 200012 464 inlägg
#12

Då har jag förstått rätt.

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

------------------
essentitia preter non sans multiplicandum

Medlem sedan okt. 2001509 inlägg
#13

Tack så himla mycket!!
Nu fungerar det precis som det ska! ;)

258 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)