Avatar billede iceb1977 Nybegynder
18. maj 2002 - 16:21 Der er 7 kommentarer og
1 løsning

SELECT COUNT i db loop ??????

Hej

Jeg er ved at lave et forum og skal derfor

have en forside med alle mine kategorier fra

min db. Dette foregår i asp og jeg bruger

en access db til dette formål .

Dog når jeg sætter COUNT ind i mit loop

så stopper det og viser kun den første poster

i min db. Hvordan kan det være ?

NB jeg henter katagorierne fra EN tabel og skal

tælle hvor mange gange de enkelte katagorier

optræder i min ANDEN db ????

LINK:

http://iceb.ljnet.dk/flash/forum/se.asp

KODEN:

<html>

<head>
<title>Forum Oversigt</title>
</head>

<body bgcolor="#999966" text="#000000" link="#000000" vlink="#000000" alink="#FFFFFF"
topmargin="2" leftmargin="0" marginwidth="0" marginheight="2">
<div align="left">

<table border="0" width="600" cellspacing="1" cellpadding="0" bgcolor="#CCCC99">
  <tr>
    <td valign="top" width="608"><table border="0" width="101%" cellspacing="1"
    cellpadding="0">
      <tr>
        <td width="55%" bgcolor="#000000"><strong><font face="Verdana" size="2" color="#CCCC99">Forums</font></strong></td>
        <td width="16%" bgcolor="#000000"><strong><font face="Verdana" size="2" color="#CCCC99">Antal
        indlæg</font></strong></td>
        <td width="26%" bgcolor="#000000"><strong><font face="Verdana" size="2" color="#CCCC99">Seneste
        indlæg</font></strong></td>
      </tr>
<%=strHTML%>
    </table>
    </td>
  </tr>
</table>
</center></div>
</body>
</html>

<br><br>

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("hp.mdb")
Conn.Open DSN



strSQL = "SELECT * FROM forumkategori,forum"
Set rs = Conn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
    Do


    response.write "<a href=""emner.asp"" target=""_blank""><h3>--------"& rs("kategori")&"</h3></a>"


response.write "--------"& rs("beskrivelse")&"<br>"

Set rs = Conn.Execute ("SELECT COUNT(*) AS Antal FROM forum WHERE kategori='heilpraktikken'")
response.write rs("Antal")



rs.MoveNext
Loop While Not rs.EOF
end if

Conn.Close
Set Conn = Nothing
%>


Avatar billede eagleeye Praktikant
18. maj 2002 - 16:28 #1
uden for loopet laver du :
Set rs = Conn.Execute(strSQL)

Inde i loopet laver du denn:
Set rs = Conn.Execute ("SELECT COUNT(*) AS Antal FROM forum WHERE kategori='heilpraktikken'")
Altså du får overskrevet det første recordset inde i loopet, lav navnet på recortdset inde i loop om til eks vis rsCount:

Set rsCount = Conn.Execute ("SELECT COUNT(*) AS Antal FROM forum WHERE kategori='heilpraktikken'")

og så:
response.write rsCount("Antal")
Avatar billede iceb1977 Nybegynder
18. maj 2002 - 16:37 #2
ok jeg tror jeg har gjort noget galt for nu får jeg stadig

KUN det første men jeg får det flere gange nu ....

Sktiv venligst dine rettelser ind i min kode og send det hele tilbage

til mig ok ?

KODEN:

<html>

<head>
<title>Forum Oversigt</title>
</head>

<body bgcolor="#999966" text="#000000" link="#000000" vlink="#000000" alink="#FFFFFF"
topmargin="2" leftmargin="0" marginwidth="0" marginheight="2">
<div align="left">

<table border="0" width="600" cellspacing="1" cellpadding="0" bgcolor="#CCCC99">
  <tr>
    <td valign="top" width="608"><table border="0" width="101%" cellspacing="1"
    cellpadding="0">
      <tr>
        <td width="55%" bgcolor="#000000"><strong><font face="Verdana" size="2" color="#CCCC99">Forums</font></strong></td>
        <td width="16%" bgcolor="#000000"><strong><font face="Verdana" size="2" color="#CCCC99">Antal
        indlæg</font></strong></td>
        <td width="26%" bgcolor="#000000"><strong><font face="Verdana" size="2" color="#CCCC99">Seneste
        indlæg</font></strong></td>
      </tr>
<%=strHTML%>
    </table>
    </td>
  </tr>
</table>
</center></div>
</body>
</html>

<br><br>

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("hp.mdb")
Conn.Open DSN



strSQL = "SELECT * FROM forumkategori,forum"
Set rs = Conn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
    Do


    response.write "<a href=""emner.asp"" target=""_blank""><h3>--------"& rs("kategori")&"</h3></a>"


response.write "--------"& rs("beskrivelse")&"<br>"

Set rsCount = Conn.Execute ("SELECT COUNT(*) AS Antal FROM forum WHERE kategori='heilpraktikken'")
response.write rsCount("Antal")



rs.MoveNext
Loop While Not rs.EOF
end if

Conn.Close
Set Conn = Nothing
%>
Avatar billede eagleeye Praktikant
18. maj 2002 - 16:48 #3
det ser rigtig ud.
Jeg ville tror det fordi du hendter dat på denne måde:
strSQL = "SELECT * FROM forumkategori,forum"

Hvordan hænger forumkategori og forum sammen?
Avatar billede omgangsdyret Nybegynder
18. maj 2002 - 16:53 #4
Prøv at sætte dette ind i loop'en

counter = counter + 1
response.write counter
Avatar billede iceb1977 Nybegynder
18. maj 2002 - 17:01 #5
eagle> forum er det folk indtaster altså indlæg...

forumkategori er kun kategorierne som står på forsiden

omg> hvor skal jeg sætte de linier ind prævist ?
Avatar billede iceb1977 Nybegynder
18. maj 2002 - 17:02 #6
eagle> skal jeg hente på en anden måde ?
Avatar billede iceb1977 Nybegynder
18. maj 2002 - 17:37 #7
ok så virker det ....

MEN en lille ting hvordan laver jeg en sætning der

requester fra rs("kategori") inde i loopen ?

EKSEMPEL:

Set rsCount = Conn.Execute ("SELECT COUNT(*) AS Antal FROM forum WHERE kategori='rs("kategori")'")
Avatar billede iceb1977 Nybegynder
18. maj 2002 - 18:21 #8
så virker det lukker ned .....
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