Avatar billede Slettet bruger
14. august 2005 - 11:39 Der er 10 kommentarer og
1 løsning

recordcounter kan du hjælpe?

jeg har fået mit script til at vise hvor mange kommentar der er til hver tekst... men selv om der ikke er nogen kommentar til en tekst skriver den (1) frem for(o)når der ikke er skrevet nogen kommentar.
hvordan får jeg mit script til at skrive (o)når der ikke er en kommentar?

<!-- #include file="recordcounter.asp" -->
<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("form.mdb")
If Request.QueryString("id") <> "" Then
    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "SELECT * FROM users WHERE (ID = " & Request.QueryString("id") & ")"
    rs.Open strSQL, myConn, 1, 3
    If Not (rs.BOF Or rs.EOF) Then
    response.write "<table border='0' WIDTH='100%'>"
response.write "<td width='400' valign='top' colspan='2'><div id='tabel5'><b>" & rs("overskrift")  & "</b></div>"
response.write "<FONT FACE='VERDANA' SIZE='1'><FONT COLOR='#473262'>" & rs("dato")  & "</FONT><hr COLOR='#DCB7DC' SIZE='1'><p>" & rs("tekst")  & ""
response.write "<hr COLOR='#DCB7DC' SIZE='1'>"
response.write "</FONT>"
response.write "</td>"
response.write "</tr>"
response.write "</table>"
response.write "<br>"
        rs.Update
        rs.Close
        myConn.Close
        Set rs = Nothing
        Set myConn = Nothing
    End If
End If
%>
<img src="skrivkommentar.gif" width="18" height="17" border="0"><a href="java script:window.open('kom.asp?id=<%= Request("id") %>','Detaljer','toolbar=0,status=0,scrollbars=yes,resizable=no,width=400,height=400,top=50,left=50').focus();void(0)">Skriv en kommentar</a><%
Response.Write "(" & NumberOfRecords("form.mdb", "SELECT * FROM comments WHERE ID=" & ("id") & ";") & "</FONT>)"
%>&nbsp;&nbsp;<img src='anbefallink.gif' width='16' height='16' border='0'><script language=JavaScript>var title = "<a href='mailalink.asp?title=" + document.title + "'>Anbefal</a>"
document.write (title)</script>

recordcounter.asp:
<%

Function NumberOfRecords(DBPathName, TableName)
  Const adOpenDynamic = 2
  Const adLockOptimistic = 3
  Dim strConnect
  Dim objRS
  Dim intTotal

  strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;"
  strConnect = strConnect & "Data Source="
  strConnect = strConnect & Server.MapPath(DBPathName) & ";"
  strConnect = strConnect & "Persist Security Info=False"
  Set objRS = Server.CreateObject("ADODB.Recordset")
  objRS.Open TableName, strConnect, adOpenDynamic, adLockOptimistic
  intTotal = 0
  If (not objRS.BOF) And (not objRS.EOF) Then
    objRS.MoveFirst
    While Not objRS.EOF
      intTotal = intTotal + 1
      objRS.MoveNext
    Wend
  End If
  objRS.Close
  Set objRS = Nothing
  NumberOfRecords = CLng(intTotal)
End Function

%>
Avatar billede jokkejensen Novice
14. august 2005 - 11:44 #1
Man skal ofte bruge Select Count(id) as number from comments where id ='' .. den returnere i hvert fald 0 hvis der ikke er nogen..
Avatar billede busschou Praktikant
14. august 2005 - 11:44 #2
Istedet for at lave en
(" & NumberOfRecords("form.mdb", "SELECT * FROM comments WHERE ID=" & ("id") & ";")
Og så bruge en funktion til at tælle
Så prøv en
Select Count(*) From comments Where ID = " &("id")
Avatar billede busschou Praktikant
14. august 2005 - 11:46 #3
lidt langsom der ;o)
Anyway er det både spild af kode ikke at lave sql klare det, samt det er langsommere at tælle sådan frem for Count(*) eller endda Count(id) da den er optimeret til netop at tælle
Avatar billede busschou Praktikant
14. august 2005 - 12:00 #4
helt konkret kunne du prøve at skifte følgende kode
----
<%
Response.Write "(" & NumberOfRecords("form.mdb", "SELECT * FROM comments WHERE ID=" & ("id") & ";") & "</FONT>)"
%>
----
ud med følgende (jeg kan ikke se du definerer id så derfor har jeg requestet den)
----
<%
set antal = myConn.Execute("Select Count(*) From comments Where ID = "&request.querystring("id"))
response.write antal(0) & "</FONT>"
%>
----
Hvis den virker kan du droppe hele din ekstra funktion ;o)
Hvis ikke den virker, så er det underligt
Avatar billede Slettet bruger
14. august 2005 - 12:07 #5
jeg får denne fejl:
Microsoft VBScript runtime error '800a01a8'

Object required

vis.asp, line 80

line 80: set antal = myConn.Execute("Select Count(*) From comments Where ID = "&request.querystring("id"))
Avatar billede busschou Praktikant
14. august 2005 - 12:09 #6
ahh ok det er fordi du lidt højere oppe har
myConn.Close
Så enten prøv at sætte din close længere ned, eller også skal den åbnes på ny
Avatar billede busschou Praktikant
14. august 2005 - 12:10 #7
og du har også en
Set myConn = Nothing
Du kan bare sætte dem ned under
---
<%
set antal = myConn.Execute("Select Count(*) From comments Where ID = "&request.querystring("id"))
response.write antal(0) & "</FONT>"
myConn.Close
Set myConn = Nothing
%>
Avatar billede Slettet bruger
14. august 2005 - 12:15 #8
så virker det busschou... det var dette <%
set antal = myConn.Execute("Select Count(*) From comments Where ID = "&request.querystring("id"))
response.write antal(0) & "</FONT>"
myConn.Close
Set myConn = Nothing
%>
som skulle til, så virkede det :-)
Avatar billede busschou Praktikant
14. august 2005 - 12:17 #9
ok :o)
Du kan sagtens slette hele din ekstra funktion så også, så bliver overblikket også¨bedre
Godt det virker :o)
Avatar billede Slettet bruger
14. august 2005 - 12:18 #10
yeps :-)mange tak for hjælpen :o)
Avatar billede busschou Praktikant
14. august 2005 - 12:29 #11
det var så lidt da :o)
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