Just nu i M3-nätverket
Jump to content

Count


Jonas Stenberg

Recommended Posts

Jonas Stenberg

Har fixat ett nyhetssystem där man skriver in nyheter och allt.. sen la jag dit en kommentar funktion också. Allt funkar perfekt men vill skriva ut hur många kommentarer det finns per nyhet.

Någon som vet hur man ska göra?

Skriv gärna ut hela koden.

Tack i förhand

MVG Jonas

 

Link to comment
Share on other sites

Hela koden var det :)

<%
Set Connect = Server.CreateObject("ADODB.Connection")
' Koppling
strSQL = "SELECT COUNT(*) FROM Nyheter WHERE ID='[b]4[/b]'"
Set objRS = Connect.Execute(strSQL)
Antal = objRS(0)
Set objRS = Nothing
Connect.Close
%>
Det finns <b><%=Antal%></b> stycken kommentarer!

 

/ Kristoffer

Windows kunde inte hitta något tangentbord. Tryck F1 för att försöka igen eller F2 för att avbryta.

 

Link to comment
Share on other sites

Jo men sql-koden är ju helt beroende av hur han lagrar sina nyheter! I inlägget anges inget, så även antagandet att det är i en sql-databas är osäkert...

 

Link to comment
Share on other sites

Jonas Stenberg

ok. har lagt in koden du gav mig och jag ändrade '4' till "& Request.Querystring("id") &"

men.. då kom det här felet upp:

Typblandningsfel i villkorsuttryck.

Why is that so? :)

 

 

Link to comment
Share on other sites

Det stämmer, MD! Jag skulle bara visa hur man sedan fick det hela i en variabel och skriver ut det.

 

Jag hoppas inte att du tycker jag är en besserwisser. Beklagar i så fall det.

 

/ Kristoffer

Windows kunde inte hitta något tangentbord. Tryck F1 för att försöka igen eller F2 för att avbryta.

 

Link to comment
Share on other sites

SQL-satsen skall vara:

strSQL = "SELECT COUNT(*) FROM Nyheter WHERE ID='" & Request.QueryString("ID") & "'"

eller

strSQL = "SELECT COUNT(*) FROM Nyheter WHERE ID=" & Request.QueryString("ID")

 

Beroende på vilken datatyp ID är...

 

Link to comment
Share on other sites

Jonas Stenberg

ah. såg fel.. det här var felmedlandet som kom upp:

Åtgärden är inte tillåten när objektet är stängt.

 

strSQL = "SELECT COUNT(*) FROM Nyheter WHERE ID='" & Request.QueryString("ID") & "'"

Set objRS = Connect.Execute(strSQL)

Antal = objRS(0)

Set objRS = Nothing

Connect.Close

 

Det är på Set objRS = Connect.Execute(strSQL) som det står 'objektet är stängt'

[inlägget ändrat 2002-12-25 16:48:51 av Jonas Stenberg]

Link to comment
Share on other sites

Det fungerar hos mig!

Vilken rad kom det på, Jonas?

 

Är det den enda koden på sidan? Förmodligen har du någonting annat på din sida som förvillar den...

 

/ Kristoffer

Windows kunde inte hitta något tangentbord. Tryck F1 för att försöka igen eller F2 för att avbryta.

 

Link to comment
Share on other sites

Jonas Stenberg

stämmer.. jag la in koden mellan.

<%Do until RecSet.EOF%>

 

Här raddas nyheterna upp.

Här är länken till kommentarerna

Här la jag koden

 

<%

RecSet.MoveNext

loop

%>

 

 

Link to comment
Share on other sites

Skulle du vilja klistra in hela koden?

 

Problemet ligger på ett objekt som är stängt!

 

/ Kristoffer

Windows kunde inte hitta något tangentbord. Tryck F1 för att försöka igen eller F2 för att avbryta.

 

Link to comment
Share on other sites

Jonas Stenberg

<font size="2" color="FF9900"><b>Nyheter</b></font><% if session("behorighet") > "1" then %>

- <a href="?go=nyheter&show=ad"><b>Lägg till nyhet</b></font></a>

<%end if%><br><br>

<table>

<td>

<% if Request.Querystring("go") = ("nyheter") and Request.Querystring("show") = ("edit") then %>

<b>Ändra nyheten</b><br><br>

<a href="default.asp?go=nyheter">Tillbaka</a>

<%

file = Server.MapPath("db/db.mdb")

 

Set Connect = Server.CreateObject("ADODB.Connection")

Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& file

 

Set RecSet = Server.CreateObject("ADODB.Recordset")

Visa = "SELECT * FROM nyheter where ID = " & Trim(Request.QueryString("editID")) & " "

RecSet.Open Visa, Connect %>

<form name="news" action="admin/Editnyhet.asp" method="post">

<input type="hidden" name="editID" value="<%=Recset("ID")%>">

<b>Text:</b><br>

<textarea name="text" style="overflow-y : visible; overflow-x : visible; width: 340; height: 100;"><%=RecSet("text")%></textarea><br><br>

<b>Länkbeskrivning:</b><br>

<input type="text" name="linkbeskrivning" size="40" value="<%=Recset("linkbeskrivning")%>"><br>

<b>Länkar:</b><br>

<input type="text" name="link" value="<%=Recset("link")%>" size="40"><br><br>

<input type="submit" name="skicka" value="Ändra">

</form>

 

 

<% elseif Request.Querystring("go") = ("nyheter") and Request.Querystring("show") = ("ad") then %>

<b>Lägg till nyhet</b><br><br>

<a href="default.asp?go=nyheter">Tillbaka</a>

<form name="edit" action="admin/adnyhet.asp" method="post">

<input type="hidden" name="namn" value="<% =session("username") %>">

<b>Text:</b><br>

<textarea name="text" style="overflow-y : visible; overflow-x : visible; width: 340; height: 100;"></textarea><br><br>

<b>Länkbeskrivning:</b><br>

<input type="text" name="linkbeskrivning" size="40"><br>

<b>Länkar:</b><br>

<input type="text" name="link" value="" size="40"><br><br>

<input type="submit" name="skicka" value="Lägg till">

</form>

 

 

<% elseif Request.Querystring("go") = ("nyheter") then %>

 

<%

IntSida = Trim(Request.QueryString("page"))

 

If IntSida = "" Then

 

IntSida = 1

 

Else

 

IntSida = Cint(IntSida)

 

End If

 

file = Server.MapPath("db/db.mdb")

 

Set Connect = Server.CreateObject("ADODB.Connection")

Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& file

 

Set RecSet = Server.CreateObject("ADODB.Recordset")

Visa = "SELECT TOP 40 * FROM nyheter ORDER BY ID DESC"

RecSet.Open Visa, Connect, 3,1

RecSet.PageSize = 10

RecSet.AbsolutePage = IntSida

 

If RecSet.EOF = true Then

 

Response.Write("<b> Inga Poster Lagrade I Databasen.</b><br>")

 

End If

 

 

Do until RecSet.EOF Or IntAntal > RecSet.PageSize

 

IntAntal = IntAntal + 1

%>

<b><a href="?go=medlemmar&show=yes&id=<%=Recset("namn")%>"><font color="#969491"><%=Recset("namn")%></a> | <%=Recset("datum")%></b></font><br>

<%=Replace(RecSet("text"),vbCrlf,"<br>")%>

<% if recset("link") <> "" then %>

<table cellpadding="0" cellspacing="0" border="0">

<tr>

<td valign="top"><hr width="200" size="1" align="left" color="5a5a5a" noshadow></td>

</tr>

<tr>

<td valign="top"><i>Länkar</i></td>

</tr>

<tr>

<td valign="top"><a href="<%=Recset("link")%>" target="newFrame"><%=Recset("linkbeskrivning")%></a> - <%=Recset("link")%></td>

</tr>

</table>

<%End If%>

<% if session("behorighet") > "1" then %><br>

<a href="?go=nyheter&show=edit&editID=<%=recset("id")%>"><b>(Ändra</a>,</b> <a href="admin/delNyhet.asp?delId=<%=recset("id")%>" onClick="return confirm('Tryck OK om du vill ta bort.')"><b>Ta bort</a>)</b>

<%end if%><br><br>

<a href="default.asp?go=kommentarer&id=<% =RecSet("ID") %>">Skriv kommentar</a>

<%

Set Connect = Server.CreateObject("ADODB.Connection")

 

' Koppling

strSQL = "SELECT COUNT(*) FROM kommentarer WHERE ID='" & Request.QueryString("ID") & "'"

Set objRS = Connect.Execute(strSQL)

Antal = objRS(0)

Set objRS = Nothing

Connect.Close

%>

Det finns <b><%=kommentarer%></b> stycken kommentarer!

<br>

<hr width="500" size="2" align="left" color="5a5a5a" noshadow>

<br>

<%

RecSet.MoveNext

loop

%>

 

<%

If RecSet.PageCount > 1 Then

 

For I = 1 To RecSet.PageCount

 

If I <> IntSida Then

 

Response.Write("Page:<b> <A href='?go=nyheter&page=" & I & "'>" & I & "</A> ")

 

Else

 

Response.Write(I & " ")

 

End If

 

Next

 

End If

 

RecSet.Close

 

Connect.Close

 

%>

 

<% end if %>

</td>

</table>

 

Link to comment
Share on other sites

Testa:

<font size="2" color="FF9900"><b>Nyheter</b></font><% if session("behorighet") > "1" then %>
- <a href="?go=nyheter&show=ad"><b>Lägg till nyhet</b></font></a>
<%end if%><br><br>
<table>
<td>
<% if Request.Querystring("go") = ("nyheter") and Request.Querystring("show") = ("edit") then %>
<b>Ändra nyheten</b><br><br>
<a href="default.asp?go=nyheter">Tillbaka</a>
<% 
file = Server.MapPath("db/db.mdb")

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& file 

Set RecSet = Server.CreateObject("ADODB.Recordset")
Visa = "SELECT * FROM nyheter where ID = " & Trim(Request.QueryString("editID")) & " "
RecSet.Open Visa, Connect %>
<form name="news" action="admin/Editnyhet.asp" method="post">
<input type="hidden" name="editID" value="<%=Recset("ID")%>">
<b>Text:</b><br>
<textarea name="text" style="overflow-y : visible; overflow-x : visible; width: 340; height: 100;"><%=RecSet("text")%></textarea><br><br>
<b>Länkbeskrivning:</b><br>
<input type="text" name="linkbeskrivning" size="40" value="<%=Recset("linkbeskrivning")%>"><br>
<b>Länkar:</b><br>
<input type="text" name="link" value="<%=Recset("link")%>" size="40"><br><br>
<input type="submit" name="skicka" value="Ändra">
</form>


<% elseif Request.Querystring("go") = ("nyheter") and Request.Querystring("show") = ("ad") then %>
<b>Lägg till nyhet</b><br><br>
<a href="default.asp?go=nyheter">Tillbaka</a>
<form name="edit" action="admin/adnyhet.asp" method="post">
<input type="hidden" name="namn" value="<% =session("username") %>">
<b>Text:</b><br>
<textarea name="text" style="overflow-y : visible; overflow-x : visible; width: 340; height: 100;"></textarea><br><br>
<b>Länkbeskrivning:</b><br>
<input type="text" name="linkbeskrivning" size="40"><br>
<b>Länkar:</b><br>
<input type="text" name="link" value="" size="40"><br><br>
<input type="submit" name="skicka" value="Lägg till">
</form>


<% elseif Request.Querystring("go") = ("nyheter") then %>

<%
IntSida = Trim(Request.QueryString("page"))

If IntSida = "" Then

IntSida = 1

Else

IntSida = Cint(IntSida) 

End If

file = Server.MapPath("db/db.mdb")

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& file 

Set RecSet = Server.CreateObject("ADODB.Recordset")
Visa = "SELECT TOP 40 * FROM nyheter ORDER BY ID DESC" 
RecSet.Open Visa, Connect, 3,1
RecSet.PageSize = 10
RecSet.AbsolutePage = IntSida

If RecSet.EOF = true Then

Response.Write("<b> Inga Poster Lagrade I Databasen.</b><br>")

End If


Do until RecSet.EOF Or IntAntal > RecSet.PageSize

IntAntal = IntAntal + 1
%>
<b><a href="?go=medlemmar&show=yes&id=<%=Recset("namn")%>"><font color="#969491"><%=Recset("namn")%></a> | <%=Recset("datum")%></b></font><br>
<%=Replace(RecSet("text"),vbCrlf,"<br>")%>
<% if recset("link") <> "" then %>
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td valign="top"><hr width="200" size="1" align="left" color="5a5a5a" noshadow></td>
</tr>
<tr>
<td valign="top"><i>Länkar</i></td>
</tr>
<tr>
<td valign="top"><a href="<%=Recset("link")%>" target="newFrame"><%=Recset("linkbeskrivning")%></a> - <%=Recset("link")%></td>
</tr>
</table>
<%End If%>
<% if session("behorighet") > "1" then %><br>
<a href="?go=nyheter&show=edit&editID=<%=recset("id")%>"><b>(Ändra</a>,</b> <a href="admin/delNyhet.asp?delId=<%=recset("id")%>" onClick="return confirm('Tryck OK om du vill ta bort.')"><b>Ta bort</a>)</b>
<%end if%><br><br>
<a href="default.asp?go=kommentarer&id=<% =RecSet("ID") %>">Skriv kommentar</a>
<%
strSQL = "SELECT COUNT(*) FROM kommentarer WHERE ID='" & Request.QueryString("ID") & "'"
Set objRS = Connect.Execute(strSQL)
Antal = objRS(0)
Set objRS = Nothing
Connect.Close
%>
Det finns <b><%=Antal%></b> stycken kommentarer!
<br>
<hr width="500" size="2" align="left" color="5a5a5a" noshadow>
<br>
<% 
RecSet.MoveNext
loop
%>

<%
If RecSet.PageCount > 1 Then 

For I = 1 To RecSet.PageCount

If I <> IntSida Then 

Response.Write("Page:<b> <A href='?go=nyheter&page=" & I & "'>" & I & "</A> ")

Else 

Response.Write(I & " ")

End If

Next

End If

RecSet.Close

Connect.Close


end if %>
</td>
</table>

/ Kristoffer

Windows kunde inte hitta något tangentbord. Tryck F1 för att försöka igen eller F2 för att avbryta.

 

Link to comment
Share on other sites

Jonas Stenberg

ah,hm.. nu funkar det, jag som hade klantat mig lite och skrivit fel på ID grejen, men i vilket fall så skriver den inte ut <%=Kommentarer%>.

Blir ingenting där jag skriver det.

Why?

[inlägget ändrat 2002-12-25 17:55:29 av Jonas Stenberg]

[inlägget ändrat 2002-12-25 18:23:33 av Jonas Stenberg]

Link to comment
Share on other sites

Knepigt. Vad är ID för datatyp?

Har du testat utan enkelfnuttar?

strSQL = "SELECT COUNT(*) FROM kommentarer WHERE ID=" & Request.QueryString("ID")

Du kan också testa att byta ut Request.QueryString("ID") mot cint(request.querystring("ID"))

 

Det funkar faktiskt på min dator...

Är du säker på att Request.QueryString("ID") innehåller något?

Testa att skriva

%><%=Request.QueryString("ID")%><%

för att se om det innehåller något.

 

/ Kristoffer

Windows kunde inte hitta något tangentbord. Tryck F1 för att försöka igen eller F2 för att avbryta.

 

Link to comment
Share on other sites

Jonas! :-)

 

Skriv <%=Antal%> istället!

 

Hoppas det fungerar nu!

/ Kristoffer

Windows kunde inte hitta något tangentbord. Tryck F1 för att försöka igen eller F2 för att avbryta.

 

Link to comment
Share on other sites

Jonas Stenberg

hah =) ledsen asså.. men, vill koppla den till db.mdb / kommentarer / kommentarer. alltså en flik i en tabell. tabellen heter kommenterar och fliken heter också kommentarer :P

Men det står 0 på alla just nu

http://217.209.193.184/clandase/default.asp?go=nyheter

 

Hm.. svårt och förklara allt såhär. du har inte icq eller msn?

[inlägget ändrat 2002-12-25 18:31:00 av Jonas Stenberg]

Link to comment
Share on other sites

Men du har ingen ?id=x i url:en ju!

 

/ Kristoffer

Windows kunde inte hitta något tangentbord. Tryck F1 för att försöka igen eller F2 för att avbryta.

 

Link to comment
Share on other sites

Jonas Stenberg

hehe :)

<%

strSQL = "SELECT COUNT(*) FROM kommentarer WHERE newsID='" & Request.QueryString("ID") & "'"

Set objRS = Connect.Execute(strSQL)

Antal = objRS(0)

Set objRS = Nothing

 

%>

(<b><%=Antal%></b>)

är koden just nu..

går det inte och lösa på ngt annat sätt och sätta ID på nyheten i databaskopplingen ist?

Tack Tack och åter Tack för din hjälp

 

Link to comment
Share on other sites

Hej! :)

Jag har msn (c4kristoffer@hotmail.com). Dock kommer snart en kompis och jag är antagligen inte online på ett tag.

 

Request.QueryString("ID") kan du försöka byta ut mot något annat. Något som utmärker just den nyheten.

Du har ett recordset öppet ser jag. Kan du inte testa att ändra Request.QueryString("ID") mot RecSet("id")?

 

Hur är annars dina databaser uppbyggda?

 

/ Kristoffer

Windows kunde inte hitta något tangentbord. Tryck F1 för att försöka igen eller F2 för att avbryta.

 

Link to comment
Share on other sites

Kul att det löste sig! Lycka till med sajten som för övrigt var bra!

God Jul!

 

/ Kristoffer

Windows kunde inte hitta något tangentbord. Tryck F1 för att försöka igen eller F2 för att avbryta.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...