Avatar billede plato Juniormester
17. februar 2003 - 20:27 Der er 1 kommentar og
1 løsning

Tælle antal fra ekstern fil

Hejsa NG..
Håber der er en venlig sjæl der vil hjælpe mig.

Jeg skal prøve at forklare det.
Jeg poster et stykke kode nedenfor, denne kode bruges til at trække nyheder ud fra en database. I koden er det lavet sådan man kan diskutere nyheden. Kommentaren finder selv ud af hvilket ID den evt. nyhed har.

Et det muligt at lave en ekstern fil, som jeg bruger med include, som tæller det antal poster der er for den givende nyhed?

Se nyheder her:
http://www.trailersiden.dk/nyhedsarkiv.asp

I nyhedsarkiv trykker man på 'Diskuter nyhed' den henter så den enkelte nyhed ud efter ID.
http://www.trailersiden.dk/nyhedsarkivcom.asp?id=448

Tælleren skal være på forsiden, derfor include, for nyhederne på forsiden bliver hentet med en helt 3. kode.
http://www.trailersiden.dk
Er det til at forstå?

<!--#include file="top.asp"-->


<%

strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.Mappath("arkiv.mdb")
Set objConn = Server.CreateObject ("ADODB.Connection")
objConn.Open strConnect


ID = Request.QueryString("id")
if ID = "" then ID = Request.Form("id")
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
  navn = Replace(Request.Form("navn"),"'","''")
  kommentar = Replace(Request.Form("kommentar"),"'","''")
  SQL = "INSERT INTO comments (nyhedid, navn, comments, [date]) VALUES ("
  SQL = SQL & "'" & id & "', "
  SQL = SQL & "'" & navn & "', "
  SQL = SQL & "'" & kommentar & "', "
  SQL = SQL & "now() )" 
 
  objConn.Execute (SQL) 
end if


strSQL = "SELECT * FROM arkiv WHERE id LIKE '" & Request.QueryString("id") & "'"

Set rs = objConn.Execute(strSQL)

If Not rs.EOF Then
    overskrift = rs("overskrift")
    tekst = rs("tekst")
    navn = rs("navn")
    kilde = rs("kilde")
    link = rs("link")
    pic = rs("pic")

Else
    Response.Write "<b>Der er noget galt med id'et</b><br><br>"
End If


%>


    <table cellpadding="0" cellspacing="1" border="0">
        <tr>
            <td colspan="2" class="opdateringtop" width="530" height="15" align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<%=overskrift%></td>
        </tr>
        <tr>
            <td class="fire" align="middle" width="65"><img src="images/ts_top_billede_opdatering.gif"></td>
            <td rowspan="4" width="461" class="fire" bgcolor="#FFFFFF" align="middle"><br>
                <table cellpadding="0" cellspacing="0" border="0">
                    <tr>   
                        <td colspan=3 height="100" valign="top"><span id="font"><%=tekst%></td>
                          </td>
                    </tr>
                    <tr>
                        <td width="152" height="12"><span id="font"><b>»</b>Navn: <%=navn%></td><td width="152" align="middle"><span id="font"><b>»</b>Kilde: <%=kilde%></td><td width="152" align="right"><a href="<%=link%>" target="_new"><b>»</b>Direkte link</A></td>
                    </tr>
                </table>
        </tr>
        <tr>
            <td class="fire" width="65" height="80" align="middle" bgcolor="#FFFFFF"><img src="pics/<%=pic%>" height="70" width="53"></td>
        </tr>
        <tr>
            <td class="fire" align="middle" width="65"><img src="images/ts_bund_under_billede_opdateringb.gif"></td>
        </tr>
        <tr>
            <td class="fire" align="middle" width="65" height="9"><img src="images/ts_bund_under_billede_opdatering.gif"></td>
        </tr>
    </table>

<%
SQL = "SELECT * FROM comments WHERE nyhedid = " & id
Set rs = objConn.Execute(SQL)
if not rs.EOF then
%>
  <br><center><table cellpadding="0" cellspacing="0" ><tr><td class="opdateringtop" width=534>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Diskuter artikel</td></tr></table>
<br>
<table cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"><tr><td class="fire">
  <table width=532>
<% do while not rs.EOF %>
    <tr><td><span id=font>(<%=rs("date")%>) <%=rs("navn")%></td></tr>
    <tr><td><span id=font><%=rs("comments")%></td></tr>
    <tr><td>&nbsp;</td></tr>
<%  rs.MoveNext
  loop
%>
  </table></td></tr></table>
<%
end if
%> 
 
<table><tr>
  <form action="" method="post">
    <input type="hidden" name="artikelid" value="<%=ID%>">
    <input type="hidden" name="funktionn" value="gem">
  <tr><td><span id="font">Navn</td></tr><tr><td><input type="text" name="navn"></td></tr>
  <tr><td valign="top"><span id="font">Kommentar</td></tr><tr><td><textarea name="kommentar" STYLE="width: 530; height: 100;"></textarea></td></tr>
  <tr><td colspan="2" align="center"><input type="submit" value="Send kommentar"></td></tr>
  </form>
</table>


<!--#include file="bottom.asp"-->
Avatar billede mortrr Praktikant
18. februar 2003 - 01:07 #1
Så længe du bare leverer en ID og en database-connection, så skulle det nok være muligt.

<%
AntalKommentarer=0
if isNumeric(ID) then
  Set rs=objConn.Execute("SELECT COUNT(*) FROM comments where nyhedid=" & ID)
  AntalKommentarer=rs(0).Value
  rs.Close


  Response.Write "Der er skrevet " & AntalKommentarer
  if AntalKommentarer=1 then
    Response.Write " kommentar."
  else
    Response.Write " kommentarer."
  end if


end if
%>

Hvis du selv vil styre udskrift, så, kan du flytte de 6 linier med bla response.write til det ønskede sted. (efter det sted du includer selvf ;-) )

- Morten
Avatar billede mjall0w Nybegynder
18. februar 2003 - 18:31 #2
Du indsætter bare det her i dit script..
Også der hvor du vil have udskrevet antal'et skriver du bare <%=antal%>
<% Do While Not rs.EOF
SQL2 = "select count(*) as antal from kommentarer WHERE nyhedsId = " & rs("id")
Set TheCount = Conn.Execute(Sql2)   
antal = TheCount("antal")
%>

/Mjall0w-
%>
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