09. december 2003 - 21:03Der er
20 kommentarer og 1 løsning
Vis sidste nye indlæg først
Hej Eksperter
Jeg har et forum som jeg skal have implementeret på mit website så de sidste nye indlæg kommer med på alle sider.
Umiddelbart er det nemt at lave - Man skal bare hente de nyeste indlæg fra tabellen [tblThread] og så hente overskriften fra [tblTopic]
Problemet er at hvis der er et emne der er meget populært og folk svarer mange gange på det, vil det blive vist mange gange på siden. Det skal være sådan så man kun ser indlæget en gang..
Eks. som det ikke skal være: -------------------------------- Pamela Anderson for xxxxl bryster Superman flyver igen Pamela Anderson for xxxxl bryster Peter Pan er bøsse --------------------------------
Eks. som det skal være: -------------------------------- Pamela Anderson for xxxxl bryster Superman flyver igen Peter Pan er bøsse --------------------------------
sql = "select distinct TopicID top10 from tblThread order by TopicID desc" set record = conn.execute(sql)
if not record.eof then do sql2 = "select overskrift from tblTopic where id = " & record("TopicID") set record2 = conn.execute(sql) Response.write record2("overskrift") record.movenext loop until record.eof end if
Jeg går så ud fra at der på TblThread er en TopicID der peger på det emne som kommentaren hører til....
Microsoft OLE DB Provider for ODBC Drivers error '80040e57'
[Microsoft][ODBC Microsoft Access Driver] The field is too small to accept the amount of data you attempted to add. Try inserting or pasting less data.
Skriver nu: <% Set rs_forum = Server.CreateObject("ADODB.RecordSet") rs_forum.open "Select distinct TopicID top10 From [tblThread] order by Thread_ID" , Conn_forum, 1, 3 %>
Får denne fejl: Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'TopicID top10'.
Default.asp, line 43 ------------------------------ LINE 43: rs_forum.open "Select distinct TopicID top10 From [tblThread] order by Thread_ID" , Conn_forum, 1, 3 ------------------------------
<% Set rs_forum = Server.CreateObject("ADODB.RecordSet") rs_forum.open "Select destinct * From [tblThread] order by Thread_ID" , Conn_forum, 1, 3 f = 1 Set rs_topic = Server.CreateObject("ADODB.RecordSet") do while not f = 15 and not rs_forum.eof Set rs_topic = Conn_forum.Execute("Select * From [tblTopic] WHERE Topic_ID = " & rs_forum("Topic_ID") & ";") If Not rs_topic.EOF Then rs_topic.MoveFirst Response.Write rs_topic("subject") f = f + 1 rs_forum.movenext End If loop %>
<% Set rs_forum = Server.CreateObject("ADODB.RecordSet") rs_forum.open "Select destinct TOP 10 TopicID From [tblThread] order by Thread_ID DESC" , Conn_forum, 1, 3 f = 1 Set rs_topic = Server.CreateObject("ADODB.RecordSet") do while not f = 15 and not rs_forum.eof Set rs_topic = Conn_forum.Execute("Select * From [tblTopic] WHERE Topic_ID = " & rs_forum("Topic_ID") & ";") If Not rs_topic.EOF Then rs_topic.MoveFirst Response.Write rs_topic("subject") f = f + 1 rs_forum.movenext End If loop %>
fejlen ved jeg ikke helt hvorfor du får.. men jeg tror ikke at man kan bruge destinct sammen med top....prøv lige den her..
<% SqlStr = "Select * From tblTopic Where Topic_ID IN (Select TOP 10 TopicID From tblThread order by Thread_ID DESC);" Set rs = Conn_forum.Execute(SqlStr)
If Not rs_topic.EOF Then rs.MoveFirst do while not rs.eof Response.Write rs_topic("subject") rs.movenext End If loop %>
Set Conn = Server.CreateObject("ADODB.Connection") Provider = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("../database/DinDB.mdb") Conn.Open Provider <% SqlStr = "Select * From tblTopic Where Topic_ID IN (Select TOP 10 TopicID From tblThread order by Thread_ID DESC);" Set rs = Conn.Execute(SqlStr)
If Not rs_topic.EOF Then rs.MoveFirst do while not rs.eof Response.Write rs_topic("subject") rs.movenext End If loop %>
det må vi da håbe...eller så prøver vi noget andet ;-)
mhv Guro.Not
Synes godt om
Ny brugerNybegynder
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.