---
title: "Nyheter med kommentarfunktion?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/10972-nyheter-med-kommentarfunktion"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "MaRseY"
published: "2001-07-30T20:38:00.000Z"
updated: "2001-08-07T19:23:00.000Z"
replies: 16
views: 265
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/10972-nyheter-med-kommentarfunktion"
---

# Nyheter med kommentarfunktion?

## #1 — MaRseY, 2001-07-30T20:38Z

tänkte försöka avancera mitt nyhetsscript lite så att man kan lägga in kommentarer till varje nyhet.

Hur bygger man upp det å vad använder man? vet inte alls hur jag ska göra..

så skulle behöva nån slags mall att följa :)

Permalänk: https://www.webforum.nu/p/10972

## #2 — Jymdis, 2001-07-30T21:04Z

du skapar en tabell som heter kommentarer och har ett fält som heter typ nyhets_id .. 
behöver du mer förklarning?

Permalänk: https://www.webforum.nu/p/279868

## #3 — Pace, 2001-07-30T21:22Z

Se och lär av XcNews på
 <http://www.xcent.com/scripts/download.asp?file=xcnews16%2Ezip> 

(jag säger härmed inte att denna applikationen är "bäst", så bespara inlägg i den tonen)

**\[stort r\]** Kommer på i efterhand att XcNews inte alls har någon sådan funktion, utan jag syftade på NewsSystem på <http://www.episodex.de/>  (nåja, X var ju med i båda namnen i alla fall...)

Permalänk: https://www.webforum.nu/p/279869

## #4 — Jymdis, 2001-07-31T07:09Z

Alltså detta är inte ett inlägg i den "tonen", hoppas det inte uppfattas så. Men det mest intressanta med att göra asp lösningar enligt mig är att sitta och skissa på hur du ska lösa ett problem. Hur man ska utföra det hela, och sen genomföra det i ASP. 

Jag hade gjort såhär: 
två tabeller
 \- nyheter
 \- kommentarer

Det kvittar hur nyheter ser ut bara man har unikt ID på varje nyhet. 
Sen i kommentarer har du typ fälten ID, Nyhets_ID, Kommentar (och eventuella mer fält du vill ha). Sen bara skriver du i ASP, inte så himla svårt =)

Kanske inte den bästa lösningen, tror dock att det är den enklaste. 

Ha d gutt!
Jymdis

Permalänk: https://www.webforum.nu/p/279870

## #5 — MaRseY, 2001-07-31T10:54Z

ne tror jag hajjar.. får väl försöka sätta mig in i det nurå :)

Permalänk: https://www.webforum.nu/p/279871

## #6 — MaRseY, 2001-08-06T12:00Z

hmm har ett problem, när man ska kommentara en nyhet vill jag att man ska se hur många som redan kommenterat, aldrig använt detta förut men förstått att det ska vara ngt i stil med detta:

```
SELECT COUNT(*) FROM tab2 WHERE NewsID=31
```

men hur använder jag detta så att siffran skrivs ut?

Permalänk: https://www.webforum.nu/p/279872

## #7 — LarsG, 2001-08-06T12:06Z

```
sql = "SELECT COUNT(*) as antal FROM tab2 WHERE NewsID=31"
set rs = connect.execute(sql)

response.write rs("antal")
```

är ett sätt.

```
sql = "SELECT COUNT(*) FROM tab2 WHERE NewsID=31"
set rs = connect.execute(sql)

response.write rs(0)
```

är ett annat.

Permalänk: https://www.webforum.nu/p/279873

## #8 — Pace, 2001-08-06T12:18Z

Ett snabbare sätt om jag får tillägga. :)

Permalänk: https://www.webforum.nu/p/279874

## #9 — MaRseY, 2001-08-06T12:25Z

hmm förstår ändå inte riktigt hur jag använder det.. ska det lixom ingå i loopen som loopar ut allting? eftersom satsen blir ju olika för varje nyhet som finns... e fdt kass på detta =/
såhär ser min sida ut som jag ska använda det på

```
session.lcid=1053
mypage = Request("whichpage")
If mypage = "" then
   mypage = 1
End If
mypagesize = 5

SQL = "Select * From tab1 Order by NewsID desc"

Set rstemp = Server.Createobject("ADODB.Recordset")
rstemp.cursorlocation = 3
rstemp.cachesize = 5
MdbFilePath = Server.MapPath("\marsey\db\tdnews.mdb")
rstemp.open SQL, "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";"
If rstemp.EOF then
   Response.write "Där fanns det ju inget... " & sok
Else
   rstemp.movefirst
   rstemp.pagesize = mypagesize
   maxcount = Cint(rstemp.pagecount)
   rstemp.absolutepage = mypage
   howmanyrecs = 0
   howmanyfields = rstemp.fields.count -1
   Do While Not RStemp.EOF AND howmanyrecs < rstemp.pagesize
   counter = counter + 1
   If counter mod 2 = 0 then
      color = "CCCC99"
   Else
      color = "CCCC66"
   End If

[b]Response.write "<TR><TD WIDTH='375'><TABLE BORDER='0'><TR><TD WIDTH='375' BGCOLOR='#f6f7e5' background='bgpattern.jpg'><font size='1' face='verdana'>" & RStemp("datumet") & ":&nbsp;&nbsp;<B>" & RStemp("Rubrik") & "</B>-<a href='mailto:" & RStemp("Email") & "'>" & RStemp("Nick") & "</a></TD></TR><TR><TD WIDTH='375' BGCOLOR='DFDFC0'><font size='1' face='verdana'>" & RStemp("Nyhets") & "</TD></TR><TR><TD WIDTH='375' BGCOLOR='DFDFC0'><font size='1' face='verdana'><a href='view.asp?newsID=" & RStemp("newsID") & "'>Kommentera (<font color='FFFFFF'>5</font> )</a></TD></TR></TABLE>"[/b]

   
   rstemp.movenext
   howmanyrecs = howmanyrecs + 1
   Loop
   rstemp.close
   Set rstemp = nothing
   %>
 
   <tr><td><center><font size="1" face="verdana">
   <%
   If maxcount <> 0 then
   response.write "sida " & mypage & " av " & maxcount & "<br>" & sidor: 
   pad = "&nbsp;"
   scriptname = request.Servervariables("script_name")
   for counter = 1 to maxcount
   If counter >= 5 then
      pad = ""
   End If
%><%

   ref = "&nbsp;<a href='" & scriptname & "?whichpage=" & counter & "&pagesize=" & mypagesize & "'>" & pad & counter & "</a> "
   response.write ref & " "
   if counter mod 5 = 0 then
      response.write ""
   End If
   Next
   End If
End If
```

markerat där jag vill ha det utskrivet.. hur lägger jag in det så?
har ju redan något som heter "SQL = blabla" å ett rs.. kan man ha dem i varandra?:)

Permalänk: https://www.webforum.nu/p/279875

## #10 — LarsG, 2001-08-06T12:53Z

Okej, om du använder denna SQL-sats

```
SQL = "Select tab1.*,(select count(*) from tab2 " & _
" where tab2.newsID = tab1.newsID) as antal From tab1 " & _ 
" Order by NewsID desc"
```

i stället för den som du har nu så borde du komma åt antalet kommentarer med 

```

response.write rstemp("antal")
```

Permalänk: https://www.webforum.nu/p/279876

## #11 — MaRseY, 2001-08-06T13:03Z

oh, tnx a lot, funka nu!:)
fast skrev då

```
" & RStemp("antal") & "
```

inuti den respons.write jag redan hade.

tnx tnx

Permalänk: https://www.webforum.nu/p/279877

## #12 — MaRseY, 2001-08-06T13:13Z

doh redan ett nytt problem..
kan man inte göra såhär?

```
SELECT * FROM tab1 WHERE newsID ='Request.QueryString('newsID')
```

felmeddelande:

> Microsoft OLE DB Provider for ODBC Drivers fel '80040e14' 
> \[Microsoft\]\[Drivrutin för ODBC Microsoft Access\] Syntaxfel (operator saknas) i frågeuttrycket 'newsID = 'Request.QueryString('newsID')''. 
>
> /marsey/tdnews/view.asp, rad 35

Permalänk: https://www.webforum.nu/p/279878

## #13 — LarsG, 2001-08-06T13:17Z

Nej, det kan man verkligen inte. Hur skulle det bli?

```
sql = "SELECT * FROM tab1 " & _
" WHERE newsID = " & Request.QueryString("newsID")
```

Permalänk: https://www.webforum.nu/p/279879

## #14 — MaRseY, 2001-08-07T16:17Z

oh.. tnx
fixat allt nu å det funkar :\>
men hur får jag så att det står i kommentarerna vikket nummer det är.
altså så att den femte kommentaren på en nyhet får #5, har 2 tabeller nu å 2 sorters ID, ComID å NewsID ...

Permalänk: https://www.webforum.nu/p/279880

## #15 — LarsG, 2001-08-07T16:29Z

Du får nog ha en egen räknare som håller reda på kommentarsnummer.

```
oldNewsId = 0
while not rstemp.eof
  if clng(oldNewsId) <> clng(rstemp("newsId")) then
     comNo = 1
     oldNewsId = clng(rstemp("newsId"))
  else
     comNo = clng(comNo) + 1
  end if
'skriv ut saker och ting
'
rstemp.movenext
wend
```

Permalänk: https://www.webforum.nu/p/279881

## #16 — MaRseY, 2001-08-07T19:09Z

oki... skulle du kunna förklara lite vad koden gör oxå? så man lär sig ngt ;)

Permalänk: https://www.webforum.nu/p/279882

## #17 — LarsG, 2001-08-07T19:23Z

Det är väl inte så mycket att förklara. För varje ny post som hämtas från databasen så kollar jag om det var samma nyhetsid som föregående post. Om det är samma så räknar jag upp comNo med ett annars så återställer jag den till ett. I och med att jag sätter newsId till 0 utanför loopen så kommer comNO att sättas till 1 för första posten då det inte finns någon post som har newsId 0. 

Det här fungerar då det ligger en order by newsID desc med i select-satsen så att alla poster med samma newsID kommer samlat.

5 rader kod säger mer än 1000 bytes ;)

Permalänk: https://www.webforum.nu/p/279883

---

Tråden på webben: https://www.webforum.nu/amne/asp/10972-nyheter-med-kommentarfunktion
