Avatar billede plato Juniormester
24. april 2004 - 13:46 Der er 14 kommentarer og
1 løsning

Vis sidste nye indlæg ASP

Hejsa NG.

Jeg er i gang med et forum.

Jeg har to tabeller
- forumoversigt
  - kolonner
    - overskrifter
    - omtale

- indlaeg
  - kolonner
    - navn
    - besked
    - dato
    - emne
    - forumId
    - reply

På forsiden af forummet vises "overskrifter" og "omtale" med følgende kode:

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

strSQL = "SELECT * FROM forumoversigt ORDER BY id"
Set rs = objConn.Execute(strSQL)

Do While Not rs.EOF
id = rs("id")
overskrifter = rs("overskrifter")
omtale = rs("omtale") 
%>



<tr>
  <td class="tekstboks" height="5" width="45">&nbsp;</td><td class="tekstboks"></td>
</tr>
<tr>
  <td class="tekstboks" width="45"></td><td class="tekstboks3">
    <strong><u><a href="forumtest.asp?mode=forum_topic&Id=<%=id%>"><%=overskrifter%></a></u></strong><br><%=omtale%><br><br> </td>
  <td class="tekstboks" width=10">&nbsp;</td>
  <td class="tekstboks2">

Indlæg: 
<%
AntalKommentarer=0
if isNumeric(ID) then
Set rs1=objConn.Execute("SELECT COUNT(*) FROM indlaeg where forumid like " & ID)
AntalKommentarer=rs1(0).Value
                                                   
Response.Write "" & AntalKommentarer & ""
end if
%>
<%
  rs.movenext
loop
rs.Close
objConn.Close
%>

Antalkommentarer tæller indlæg hvor forumId er like id.

Nu vil jeg meget gerne have en kode der kan vise de sidste nye indlæg (emne) i tabellen "indlaeg".

Jeg har prøvet på mange forskellige måder, men har ikke kunnet finde én. Derfor har jeg fjernet den igen, i håb der er en venlig sjæl som kan skrive en ny kode ind i den nuværende kode, som viste de sidste nye emner i hvert fora.

Er det til at forstå?
Avatar billede snowball Novice
24. april 2004 - 13:59 #1
Er http://www.eksperten.dk/regler.phtml punkt 2.1.11 til at forstå !? ;)

Du oprettede http://www.eksperten.dk/spm/492705 i går, og har altså kun ventet under 1 døgn inden du lukkede og oprettede det samme spørgsmål igen. Husk det venligst!

Snowball / CoAdmin
Avatar billede plato Juniormester
24. april 2004 - 14:47 #2
Hovs... Det har jeg faktisk slet ikke læst..

Måske jeg skulle læse dem alle igennem.. ;-)

Sorry.
Avatar billede hmortensen Nybegynder
24. april 2004 - 15:03 #3
SELECT TOP 1 felt1,felt2 FROM table ORDER BY id DESC
Avatar billede plato Juniormester
24. april 2004 - 15:12 #4
Jeg har lavet denne her kode som jeg smider ind med include:

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

                  strSQL = "SELECT TOP 1 emne FROM indlaeg  ORDER BY dato DESC"
                  Set rs = objConn.Execute(strSQL)

                  'Udskriv top 5
                  placering = 1
                                  Do While Not rs.EOF
                                    emne = rs("emne")
 
                              %>
<%=emne%>

<%
                  placering = placering + 1
                  rs.MoveNext
                  loop
              %>

Men så kommer denne her fejl:

ADODB.Recordset error '800a0bcd'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

/forumtest.asp, line 65


Nogle af felterne i indlaeg under emne er også tomme, eller også eksistere de ikke endnu, men kan den så ikke bare skrive "Ingen indlæg"
Avatar billede koldy Nybegynder
24. april 2004 - 16:26 #5
du udskriver jo kun et indlæg sådan

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

                  strSQL = "SELECT TOP 5 emne FROM indlaeg  ORDER BY dato DESC"
                  Set rs = objConn.Execute(strSQL)

                  'Udskriv top 5
                  placering = 1
                                  Do While Not rs.EOF
                                    emne = rs("emne")

                              %>
<%=emne%>

<%
                  placering = placering + 1
                  rs.MoveNext
                  loop
              %>
Avatar billede plato Juniormester
24. april 2004 - 16:54 #6
Det ved jeg godt, men den bliver include't i en anden loop.
Forsiden viser de fora der er. Fora ligger i tabellen "forumoversigt" Hvert fora har et unikt ID.
Hvert indlæg der postes i de forskellige fora, ligger i tabellen "indlaeg".
Så er det jeg gerne vil have vist de nyeste indlæg på forsiden samtidig med hvilke fora der vises.

Forum (ok)            Sidste indlæg (ik ok)          antal indlæg (ok)
Avatar billede plato Juniormester
24. april 2004 - 16:55 #7
Avatar billede koldy Nybegynder
24. april 2004 - 17:47 #8
ok på den måde.. hmm.....

Du mener altså at de 5 nyeste indlæg skal findes, også skal det fora de er skrevet i skrives på forsiden, sammen med indlæget??
Avatar billede koldy Nybegynder
24. april 2004 - 17:48 #9
altså for vært af de 5 indlæg?. er det rigtig forstået??..
Avatar billede plato Juniormester
24. april 2004 - 18:15 #10
De 5 er ikke noget jeg har skrevet. Den skal kun vise det nyeste indlæg i hvert fora soreteret efter dato.
Kig på siden igen.

Og så kig her:

Forum                          Sidst nye indlæg          dato

Aktuelle og kommende film      Bla bla bla                1. januar 2004 08:00
Gamle film                      Bla bla bla                1. januar 2004 08:05
Skuespillere                    Bla bla bla                1. januar 2004 08:10

osv.

Bla bla bla er = kolonne "emne" i tabellen "indlaeg"

Hvis nu vi ikke kan løse det her, er det så muligt jeg kan sende db'en og asp-filen til dig? Det skal nemlig laves.
Avatar billede koldy Nybegynder
24. april 2004 - 18:17 #11
yes det er ikke noget problem, du skulle ikke tilfældig vis ha' msn, så kan du også skrive der over.. thomas@webbandit.dk
Avatar billede hmortensen Nybegynder
24. april 2004 - 18:23 #12
Hvis du har en while i en while, så brug rs.MoveFirst i det inderste loop
Avatar billede koldy Nybegynder
24. april 2004 - 19:56 #13
Løsningen blev:

If AntalKommentarer > 0 Then
    strSQL = "SELECT emne FROM indlaeg Where ForumId like " & rs("id") & " Order by ID DESC"
    Set rsEmne = objConn.Execute(strSQL)
    Response.Write " " & rsEmne("emne")
    rsEmne.Close
End If
Avatar billede hmortensen Nybegynder
24. april 2004 - 20:18 #14
Du bør bruge "TOP 1", så du ikke skal hive alt data'en ud, hvilket kan blive et tungt og unødvendigt kald
Avatar billede koldy Nybegynder
24. april 2004 - 20:23 #15
ja det er rigtig, har jeg overset...
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