Avatar billede dramsgaard Nybegynder
05. maj 2003 - 20:59 Der er 20 kommentarer og
1 løsning

tælle kommentarer

jeg skal have lidt hjælp til et debatforum jeg er ved at lave.

Jeg har en oversigtsside som udskriver alle emner der er oprettet.
jeg skal tælle hvor mange kommentarer der er oprettet til hvert enkelt emne, men jeg kan ikke lige gennemskue hvordan det skal gøres.

Der er to tabeller
1. traad
2. kommentar

Kommentarerne bliver knyttet til tråden ved hjælp af en kolonne der hedder traadid

Hvordan kan antallet af kommentarer til hver enkelt emne blive optalt?

...jeg ved ikke lige om det er helt klart formuleret, men ellers må i lige sige til
Avatar billede thomas_regin Nybegynder
05. maj 2003 - 21:02 #1
Det burde være rimelig simpelt:

strSQL = "Select ID from Traad"
set rs = dbconn.execute(strSQL)

do while not rs.EOF
    strSQL = "Select Count(ID) as kTotal from Traad where Traad_IDFK = " & rs("ID")
    set kRS = dbconn.execute(strSQL)
    Response.Write "Der er " & kTotal & " kommentarer i denne tråd!<br><br>"
rs.MoveNext

Håber det var noget i den stil!

Mvh,

/thomas regin.
Loop
Avatar billede eagleeye Praktikant
05. maj 2003 - 21:02 #2
Du kan bruge Count og Group By

SQL = "SELECT Count(*) as antal FROM kommentar GROUP BY traadid"
Avatar billede -master-d- Nybegynder
05. maj 2003 - 21:04 #3
Prøv med den her

SQL = "Select Count(id) AS antallet From kommentar Where traadid = (Select traadid From traad)"
Set rs = Conn.Excute(SQL)

If Not (rs.BOF OR rs.EOF) THen
response.write rs("antallet")
End IF
Avatar billede festy Nybegynder
05. maj 2003 - 21:04 #4
Hvilket sprog laver du det i?
Avatar billede festy Nybegynder
05. maj 2003 - 21:09 #5
sql = "select * from kommentar;"
set rs = conn.execute(sql)

sql = "SELECT COUNT(kommentarid) AS antal FROM kommentar WHERE traadid = '"& rs("traadid") &"';"
set subrs = conn.execute(sql)
Avatar billede -master-d- Nybegynder
05. maj 2003 - 21:09 #6
festy > prøv med asp, :D
Avatar billede nabaz Nybegynder
05. maj 2003 - 21:09 #7
Det er nemt nok..

strSQL = "Select ID from Traad"
set rs = dbconn.execute(strSQL)
do while not rs.EOF
strSQL = "Select Count(ID) as kTotal from Traad where Traad_IDFK = " & rs("ID")
set kRS = dbconn.execute(strSQL)
Response.Write "Der er " & kTotal & " kommentarer i denne tråd!<br><br>"
rs.MoveNext


Så nemt er det :)
Avatar billede eagleeye Praktikant
05. maj 2003 - 21:10 #8
Hvis du på samme tid lave en JOIN mellem de to tabller kan du få overskriven med fra Traad, her antager jeg du har en kolonne som hedder, OverSkift i traad:

SQL = "SELECT Count(kommentar.traadid) AS antal, traad.OverSkift FROM traad INNER JOIN kommentar ON traad.id = kommentar.id GROUP BY traad.OverSkift;"

Set rs = Conn.Execute(SQL)
do while not rs.EOF
  Response.write "Tråd : " & rs("OverSkift") & " har " & rs("antal") & " kommentare. <br>"
  rs.Movenext
loop
Avatar billede dramsgaard Nybegynder
05. maj 2003 - 21:10 #9
hmm kan ikke lige få det til at virke...det skal sættes ind i flg:

<%
sql ="SELECT * FROM traad Where typeID=" & Request.Querystring("id") & " order by traadid desc"
Set Rs = Conn.Execute(sql)
%>
        <% do until rs.EOF %>
        <tr>
          <td><%=rs("dato") %></td>
          <td><%=rs("traadID") %></td>
          <td><a href="kommentar.asp?id=<%=Rs("traadid")%>&debatid=<%=Request.Querystring("id")%>"><%=rs("overskrift") %></a></td>
          <td colspan="2"><%=rs("navn") %></td>
          <td>(SÆTTES IND HER)</td>
        </tr>
        <% rs.movenext
loop %>
        <% rs.close
set rs = nothing %>
Avatar billede eagleeye Praktikant
05. maj 2003 - 21:13 #10
Hvis du laver det sådan her kan du nøjes med et database kald:

<%
SQL = "SELECT Count(kommentar.traadid) AS antal, traad.dato, traad.traadID, traad.overskrift, traad.navn FROM traad INNER JOIN kommentar ON traad.traadid = kommentar.traadid GROUP BY traad.dato, traad.traadID, traad.overskrift, traad.navn ORDER BY traaid DESC"

Set Rs = Conn.Execute(sql)
%>
        <% do until rs.EOF %>
        <tr>
          <td><%=rs("dato") %></td>
          <td><%=rs("traadID") %></td>
          <td><a href="kommentar.asp?id=<%=Rs("traadid")%>&debatid=<%=Request.Querystring("id")%>"><%=rs("overskrift") %></a></td>
          <td colspan="2"><%=rs("navn") %></td>
          <td><%=rs("antal")%></td>
        </tr>
        <% rs.movenext
loop %>
        <% rs.close
set rs = nothing %>
Avatar billede thomas_regin Nybegynder
05. maj 2003 - 21:15 #11
Ehm... nabaz,

Hvorfor kopierer du mit svar, og afgiver det som et svar fra dig selv, fuldstændig ord-ret!?

/thomas regin.
Avatar billede dramsgaard Nybegynder
05. maj 2003 - 21:18 #12
eagleeye>> hmm får flg fejl når jeg indsætter det:
Too few parameters. Expected 1.
Avatar billede dramsgaard Nybegynder
05. maj 2003 - 21:21 #13
nå det var vist bare en stave fejl, nu får jeg flg fejl:
The specified field 'traadid' could refer to more than one table listed in the FROM clause of your SQL statement.
Avatar billede eagleeye Praktikant
05. maj 2003 - 21:21 #14
Der manger lige tabel navn tilsidst i SQLen:

SQL = "SELECT Count(kommentar.traadid) AS antal, traad.dato, traad.traadID, traad.overskrift, traad.navn FROM traad INNER JOIN kommentar ON traad.traadid = kommentar.traadid GROUP BY traad.dato, traad.traadID, traad.overskrift, traad.navn ORDER BY traad.traaid DESC"
Avatar billede dramsgaard Nybegynder
05. maj 2003 - 21:25 #15
så virker det : )
tak til alle for hurtige svar
Avatar billede dramsgaard Nybegynder
05. maj 2003 - 21:29 #16
arh nu er jeg løbet ind i et nyt problem
inden man kan oprette en emne skal man vælge en kategori, ex. fri debat.
i oversigten udskriver den så alle emner oprettet i denne kategori, men nu udskriver den alle emner der er oprettet....altså også emner der er oprettet i andre kategorier.... hvorfor??
Avatar billede eagleeye Praktikant
05. maj 2003 - 21:33 #17
Ups jeg har glemt at få din WHERE del med prøv med denne SQL:


SQL = "SELECT Count(kommentar.traadid) AS antal, traad.dato, traad.traadID, traad.overskrift, traad.navn FROM traad INNER JOIN kommentar ON traad.traadid = kommentar.traadid Where traad.typeID=" & Request.Querystring("id") & " GROUP BY traad.dato, traad.traadID, traad.overskrift, traad.navn ORDER BY traad.traaid DESC"
Avatar billede dramsgaard Nybegynder
05. maj 2003 - 21:35 #18
emne-oversigten bliver lavet ved at requeste ID

den tabel der holder styr på kategorierne hedder debattype, og primærnøgle er ID
Avatar billede dramsgaard Nybegynder
05. maj 2003 - 21:36 #19
okay så virker det optimalt : )
Avatar billede robotten Praktikant
08. maj 2003 - 14:47 #20
You can run, but don't hide.
Gennmgå dine tre åbne spm., jeg afventer feedback.
Avatar billede robotten Praktikant
08. maj 2003 - 14:47 #21
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

IT-JOB